struts2 跳转类型几种类型说明

1.关于struts2 result type的几种采用类型

  redirect 类型用于重定向到一个页面,另一个action或一个网址。

     <result name="list" type="redirect">/Sections.do?appid=${appid}&amp;pageNo=${pageNo}</result>

  缺点:redirect把一个http返回码(SUCCESS)以及返回的页面位置一起重新发给web服务器,容纳后由web服务器产生一个新的HTTP请求,就会产生一个新的线程,保存在原来Action执行的线程中的数据就无法访问。
所以,result需要包含Action的数据,那么redirect不是一个可行的办法。因为新的HTTP请求时在Servlet容器的新的线程中处理的,ActionContext中的所有状态都不会存在。

redirect-action 结果类型使用ActionMapperFactory提供的ActionMapper来重定向请求到另外一个action

  <result name="success" type="redirect-action">     
             login?userInfo.userName=${userInfo.userName}&amp;userInfo.password=${userInfo.password}     
   </result>

   或者
  
 <result name="success" type="redirect-action">     
     <param name="actionName">login</param>
     <param name="userInfo.userName">${userInfo.userName}</param> 
  </result>

 redirect和redirect-action两种结果类型在使用上其实并没有什么区别,只是写法不同而已。 redirect需要添加后缀,而redirect-action不需要添加后缀。

 chain 用于把相关的几个action连接起来,共同完成一个功能。处于chain中的action属于同一个http请求,共享一个ActionContext

   <result name="success" type="chain">

    
  dispatcher 为默认跳转类型,用于返回一个视图资源(如:jsp),用于页面转发,页面跳转过程一直是同一个线程,Action中的数据一直保存在。
location只能是页面,如果是actino则可以采用chain来解决。
   <result name="success" type="dispatcher">
        <param name="location">/main.jsp</param>
   </result>

在这个配置文件里,多个参数的连接符使用了"&amp;",但XML的语法规范,应该使用"&amp;"代替"&",原理和HTML中的转义相同,开始没有注意,在struts分析配置文件时,总是报出这样的错误:

  The reference to entity "preinfo" must end with the ';' delimiter.  

进行上面说明的替换后,就正常了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值