Struts2 (2.2.1)的Action中标签<result>可以通过多种方式跳转到另一个Action:
- <result type="redirect">ActionName</result>
- <result type="redirectAction">ActionName</result>
- <result type="chain">ActionName</result>
其中,前两种方式跳转后前一个Action的处理结果会丢失,第三种(Action链式处理)则会将处理结果保留。
下面的xml代码是struts.xml中关于Action链式处理的配置例子。需要强调的是,当下一个Action不在当前package中时,必须指明对方的namespace:
<package name="mybatis" extends="struts-default" namespace="/mybatis">
<action name="MybatisQuery" class="myapp.MybatisQueryAction">
<result>/showSqlResult.jsp</result>
</action>
</package>
<package name="myapp" extends="struts-default">
<action name="SqlQuery" class="myapp.SqlQueryAction">
<result name="success" type="chain">
<param name="actionName">MybatisQuery</param>
<param name="namespace">/mybatis</param>
</result>
<result name="error">/index.jsp</result>
</action>
</package>