struts.xml中的操作重定向

时间:2011-02-10 11:38:52

标签: 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>

由于

1 个答案:

答案 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。