打赏

action之间传参为中文;type='redirect'和 type='redirectAction'主要区别

摘录自:http://blog.csdn.net/lhi705/article/details/7446156

[html] view plain copy
 
 print?
  1. Struts2中action之间传参中文乱码的问题  
  2.    
  3. 解决方法一(已经验证,可以):  
  4.    
  5. 两个action都定义要传的参数属性的get和set方法,必须相同!  
  6.    
  7. 在struts.xml中定义:  
  8.    
  9. <result name="input" type="redirect">  
  10.    
  11. <param name="location">/homepage.ic?loginError=${loginError}</param>  
  12.    
  13. <param name="encode">true</param>  
  14.    
  15. </result>  
  16.    
  17. 解决方法二(据说也可以):  
  18.    
  19. 在action里面用   
  20. username.setName(URIUtil.encodeQuery(username.getName()))  
  21.    
  22. 注:Post方式表单提交正常,GET方式提交中文乱码,在Tomcat配置文件Server.xml的Connector标签中加入“URIEncoding=UTF-8”。  
  23.    
  24. 传参乱码可以使用param:  
  25.    
  26. <action name="broSales" class="salesAction" method="broSales">  
  27.             <result>/sales/salesbro.jsp</result>  
  28.             <result name="input" type="redirectAction">  
  29.                 <param name="actionName">listSales.do</param>  
  30.                 <param name="namespace">/sales</param>  
  31.                 <param name="soGroupId">${soGroupId}</param>  
  32.                 <param name="soName">${soName}</param>  
  33.             </result>  
  34.      </action>  
  35.    
  36. 这种方式仅适合于redirectAction方式,不适合于redirect方式  

[html] view plain copy
 
 print?
  1. <result name="addOrUpdateUserRole" type="redirect">userAction!findUserRolesByUserId.action?userId=${userId}</result>  
  2. <result name="addOrUpdateUserRole" type="redirectAction">userAction!findUserRolesByUserId?userId=${userId}</result>  
  3.   
  4. 使用redirect需要后缀名   
  5. 使用redirect-action不需要后缀名   
 
 
posted @ 2016-12-25 17:24  海米傻傻  阅读(1384)  评论(0编辑  收藏  举报