从另一个动作重定向到一个动作时,我遇到了一个奇怪的问题。简而言之,在第一个动作(我从中重定向)中捕获的命名变量仍然以某种方式保留在值堆栈中,并且它在第二个动作中覆盖了相同的命名变量。我将通过一些代码进行解释。
<action name="r/{seoURL}" class="ReportsAction"
method="displayReport">
...
<result name="REDIRECT_TO_NEXT_ACTION" type="redirectAction">
<param name="actionName">s/${seoURLForRedirect}</param>
<param name="namespace">/reports</param>
</result>
...
</action>
我在返回之前设置${seoURLForRedirect}
变量ReportsAction
。对于第二个动作,我有以下映射。
<action name="s/{seoURL}" class="ReportSeriesAction"
method="displayReportSeries">
...
</action>
如您所见,我在第二个操作中具有相同的命名变量seoURL
。此值设置为在第一个操作中找到的值。我不明白为什么值堆栈仍然保持seoURL
在第一个操作中设置的值。特别是因为我在重定向结果参数中写完了它。
任何帮助表示赞赏。