struts.xml中的操作重定向

blu*_*sky 12 struts2

我可以从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>
Run Code Online (Sandbox Code Playgroud)

谢谢

Qua*_*ion 22

是.你可以重定向,你可以链.重定向从头开始,就像你第一次调用另一个动作,而链保持值堆栈上的值并添加新动作的变量.

转发:

<action name="newRedirect" >
    <result type="redirect">/formsearch.action</result>
</action>
Run Code Online (Sandbox Code Playgroud)

链:

<action name="newRedirect" >
    <result type="chain">formsearch</result>
</action>
Run Code Online (Sandbox Code Playgroud)

为方便起见,可以将重定向结果类型更改为"redirectAction"结果类型...这样我们就可以编写:

 <action name="newRedirect" >
    <result type="redirectAction">formsearch</result>
</action>
Run Code Online (Sandbox Code Playgroud)

最后一个可能就是你想要的.

现在有一个警告,链接/动作重定向就在那里,带有"goto"语句.不是邪恶但容易被滥用,你可能应该考虑移动决定逻辑(确定要对拦截器调用几个动作的逻辑),或者逻辑是否主要与设置相关,然后由某些类型的实用程序类调用动作准备方法(或直接进入prepare方法)...如果在调用prepare之前动作需要参数,则使用paramsPrepareParamsStack.