有关Struts2中action间的跳转可分为两部分,一部分为同一个包中action间的跳转,还有一个就是在不同包中action间的跳转。不管是不是在同一个包中,首先要明确的是要实现跳转,必须要将result中type属性设为chain或redirectAction。
一、同一个包中的跳转
在Action的results里面的type类型配置为“chain”,跳转的Action的URL直接写要跳转到的Action名称即可。
如下面的package,从 浏览器访问r1.action之后跳转到r2.action,最后跳转到1. jsp页面显示给用户!
Java代码
<package name="report" extends="struts-default" namespace="/">
<action name="r1" class="R1">
<result name="success" type="chain">r2</result>
</action>
<action name="r2" class="R2">
<result name="success" type="dispatcher">/1.jsp</result>
</action>
</package>
二、不同包中的跳转
需要使用param标签,其中param的name属性不需要修改,只需修改标签对应的值即可,如下,只需修改ss及/pp就行。
从浏览器访问r1.action之后跳转到package为paramsRedirect中的r2.action,最后跳转到1.jsp页面显示给用户!
Java代码
<package name="resultType" namespace="/r" extends="struts-default">
<action name="r1"> www.2cto.com
<result type="chain">
<param name="actionName">r2</param>
<param name="namespace">/pp</param>
<param name="method">method123</param>
</result>
</action>
</package>
<package name="paramsRedirect" namespace="/pp" extends="struts-default">
<action name="r2">
<result>/1.jsp</result>
</action>