struts2 Action之间跳转
2014-11-09 15:35
405 查看
http://www.2cto.com/kf/201303/195097.html
有关Struts2中action间的跳转可分为两部分,一部分为同一个包中action间的跳转,还有一个就是在不同包中action间的跳转。不管是不是在同一个包中,首先要明确的是要实现跳转,必须要将result中type属性设为chain或redirectAction或者是redirect。
一、同一个包中的跳转
在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>
1. 设置type="redirect"
<package name="struts" extends="struts-default">
<action name="login" class="com.aihua.example.LoginAction">
<result name="success" type="redirect">register.action </result>
<result name="error">/index.jsp </result>
</action>
</package>
2.设置 type="chain"
<package name="struts" extends="struts-default">
<action name="login" class="com.aihua.example.LoginAction">
<result name="success" type="chain" >action 名称 </result>
<result name="error">/index.jsp </result>
</action>
</package>
当type为chain 时,说明是action链,运行完第一个action java文件接着会运行第二个action JAVA 文件,相当于forward(客户端的url不会改变).当type为redirect时,说明会跳转到第二个action的url (客户端的url会改变)
struts2-action间跳转及间传值(
http://blog.sina.com.cn/s/blog_5f54f0be0100n00k.html
通常,在配置文件中都是在一个动作中声明它要引用的JSP如:
<action class=”” name=””>
<result name=””>xxx.jsp</result>
</action>
有时候我们需要将结果指向另一个动作.可以如此:
<action
name ="rsa01002Action"class
="rsa01002Action">
<resultname="success"type="redirect">rsl06001Action.do</result>
</action>
将类型指定为redirect这就相当于JSP中的跳转一样.还有种写法:
<action
name ="app09002Action"class
="app09002Action">
<resultname="success"type="redirect-action">
<param name="actionName">app10001Action</param>
</result>
</action>
这样和上面的差不多,只是将要跳转到的动作的名字放在了外面.但下面这种写法传的是动作的名称,所以后面没有加.do.前面写法后有,但好象不加也行.
上面两种方法就是动作间的跳转,但有时候需要在跳转的时候传递一些参数.参数可能是字符,也可能是其它对象.方法如下:
<action
name ="app09002Action"class
="app09002Action">
<resultname="success"type="redirect-action">
<param name="actionName">app10001Action</param>
<param name="userId">${userId}</param>
</result>
</action>
下面一个参数就是要传递过去的参数.name=”userId”即app10001Action(跳转目标)中接收参数的变量名.而${userId}表示是app09002Action(跳转起点)中在传过去的变量.这个变量的值要在execute()方法完成前进行赋值,即在该方法的return 语句前进行赋值.当然,为了struts框架能获得该值,并能设置到目录动作中,需要我们将起点动作和目录动作中的对应的两个变量都设为public或设置对应的getter,setter方法.
struts2 redirect 实现action之间跳转 如何传2个值
有关Struts2中action间的跳转可分为两部分,一部分为同一个包中action间的跳转,还有一个就是在不同包中action间的跳转。不管是不是在同一个包中,首先要明确的是要实现跳转,必须要将result中type属性设为chain或redirectAction或者是redirect。
一、同一个包中的跳转
在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>
Struts2 中action之间的跳转
http://zhou568xiao.iteye.com/blog/253428
例如从你的login.action到register.action 有两种实现方式1. 设置type="redirect"
<package name="struts" extends="struts-default">
<action name="login" class="com.aihua.example.LoginAction">
<result name="success" type="redirect">register.action </result>
<result name="error">/index.jsp </result>
</action>
</package>
2.设置 type="chain"
<package name="struts" extends="struts-default">
<action name="login" class="com.aihua.example.LoginAction">
<result name="success" type="chain" >action 名称 </result>
<result name="error">/index.jsp </result>
</action>
</package>
当type为chain 时,说明是action链,运行完第一个action java文件接着会运行第二个action JAVA 文件,相当于forward(客户端的url不会改变).当type为redirect时,说明会跳转到第二个action的url (客户端的url会改变)
struts2-action间跳转及间传值(
http://blog.sina.com.cn/s/blog_5f54f0be0100n00k.html
通常,在配置文件中都是在一个动作中声明它要引用的JSP如:
<action class=”” name=””>
<result name=””>xxx.jsp</result>
</action>
有时候我们需要将结果指向另一个动作.可以如此:
<action
name ="rsa01002Action"class
="rsa01002Action">
<resultname="success"type="redirect">rsl06001Action.do</result>
</action>
将类型指定为redirect这就相当于JSP中的跳转一样.还有种写法:
<action
name ="app09002Action"class
="app09002Action">
<resultname="success"type="redirect-action">
<param name="actionName">app10001Action</param>
</result>
</action>
这样和上面的差不多,只是将要跳转到的动作的名字放在了外面.但下面这种写法传的是动作的名称,所以后面没有加.do.前面写法后有,但好象不加也行.
上面两种方法就是动作间的跳转,但有时候需要在跳转的时候传递一些参数.参数可能是字符,也可能是其它对象.方法如下:
<action
name ="app09002Action"class
="app09002Action">
<resultname="success"type="redirect-action">
<param name="actionName">app10001Action</param>
<param name="userId">${userId}</param>
</result>
</action>
下面一个参数就是要传递过去的参数.name=”userId”即app10001Action(跳转目标)中接收参数的变量名.而${userId}表示是app09002Action(跳转起点)中在传过去的变量.这个变量的值要在execute()方法完成前进行赋值,即在该方法的return 语句前进行赋值.当然,为了struts框架能获得该值,并能设置到目录动作中,需要我们将起点动作和目录动作中的对应的两个变量都设为public或设置对应的getter,setter方法.
struts2 redirect 实现action之间跳转 如何传2个值
<action name="action1" method="" class=""> <result name="success" type="chain"> <param name="actionName">action2</param> <param name="mm">${kk}</param> <param name="jj">${gg}</param> </result> </action> 其中的上面的mm和jj都是action1中定义的变量,有get、set方法。其中的kk,gg则是第二个action2的里面的变量了,需要提供get、set方法,这样就能获得action1传递给action2的值了。 希望对你有帮助,以上是在测试下能运行的。
相关文章推荐
- struts2 action 之间跳转
- struts2 action 之间跳转
- struts2 action 之间跳转
- struts2 action 之间跳转
- Struts2 action之间相互跳转传递参数
- struts2使用注解配置Action之间的跳转
- struts2中action之间的跳转
- Struts2 action与action之间的跳转
- 【struts2】action里result到action之间的跳转、不同包package
- struts2里同包与不同包的action之间跳转
- Struts2中action之间的跳转问题
- struts2里同包与不同包的action之间跳转
- Struts2中action之间的跳转问题
- struts2配置文件中,action之间的跳转
- Struts2中action之间的跳转
- struts2 action之间的跳转
- struts2 配置及学习--action之间的跳转
- Struts2 action之间传值与跳转
- struts2中action之间的跳转
- struts2 action 之间的跳转