我可以从struts操作中重定向到另一个操作吗?因此,操作的结果是另一个操作,即 - 这是struts.xml的片段
<action name="newRedirect" >
<result>formsearch</result>
</action>
<action name="formsearch" class="com.event.action.SearchForm"
method="execute">
<result name="success">/form.jsp</result>
</action>
由于
答案 0 :(得分:22)
是。你可以重定向,你可以链。重定向从头开始,就像你第一次调用另一个动作,而链保持值堆栈上的值并添加新动作的变量。
前进:
<action name="newRedirect" >
<result type="redirect">/formsearch.action</result>
</action>
链接:
<action name="newRedirect" >
<result type="chain">formsearch</result>
</action>
为方便起见,重定向结果类型可以更改为&#34; redirectAction&#34;结果类型...让我们写:
<action name="newRedirect" >
<result type="redirectAction">formsearch</result>
</action>
最后一个可能是你想要的。
现在有一个警告,链接/动作重定向就在那里&#34; goto&#34;声明。不是邪恶但容易被滥用,你可能应该考虑移动决定逻辑(确定要对拦截器调用几个动作的逻辑),或者逻辑是否主要与设置相关,然后由某个类型的实用程序类调用动作准备方法(或直接进入prepare方法)...如果在调用prepare之前动作需要参数,则使用paramsPrepareParamsStack。