Struts2的dispatcher chain redirect和redirectAction的区别

1.跳转方式

dispatcher和chain是服务器端跳转,所以客户端只发起一次请求,产生一个action;
  redirect和redirectAction是客户端跳转,所以客户端发起两次请求。

2.跳转内容

dispatcher和redirect跳转的是views(一般是jsp页面);
chain和redirectAction跳转的是一个action。

3.核心代码

(1)type="dispatcher" 为默认,用于jsp页面跳转 
     作用域:dispatcher:用于页面转发,页面跳转过程一直是同一个线程,Action中的数据一直保存在。
<result name="success">/index.jsp</result> 
完整的写法为: 
<result name="success" type="dispatcher"> 
<param name="location">/index.jsp</param> 
</result>
(2)type="redirect" 重定向到jsp、action、外部网址

  作用域:redirect把一个http返回码(SUCCESS)以及返回的页面位置一起重新发给web服务器, 容纳后由web服务器产生一个新的HTTP请求,就会产生一个新的线程,保存在原来Action执行的线程中的数据就无法访问。

<result name="success" type="redirect">/index.jsp</result> 

<result name="success" type="redirect">/login.do</result> 
<result name="success" type="redirect">http://www.baidu.com</result>
重定向时带参数处理方法:
<result name="success" type="redirect">/login.do?userId=${userId }</result> 
 (3)type="redirect-action" 重定向到另外一个action
<result name="success" type="redirect-action"> 
<param name="actionName">login.do</param> 重定向action名
<param name="userId">userId</param>带的参数
</result>
(4)type="chain" 用于action跳转。 
作用域:功能与redirect的action转发类似,不过与redirectaction转发功能不同的是它可以将Action中的数据一直保存在同一个HTTP请求中。
<action name="action1" class="org.Action1"> 
<result name="success" type="chain">action2.do</result> 
</action> 

<action name="action2" class="org.Action2"> 
<result name="success">login.jsp</result> 
</action>
(5)type="plaintextj" 跳转显示源代码
  <result name="err" type="plaintext"> 
<param name="location">具体的位置</param> 
<param name="charSet">字符规范(如GBK)</param> 
</result>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值