Struts 2 第10part 中文版本问题

2013年2月14日 情人节

寒假因为课程设计,对Struts 2的学习听了一段时间,现在继续学习,直到把Struts 2搞定。

现在继续第10part 关于中文显示为乱码的问题

Struts 2 第10part 中文版本问题

项目实例:Struts2_CharacterEncoding

struts.xml配置文件

  
  
  
  
  1. <?xml version="1.0" encoding="UTF-8" ?> 
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd"> 
  5.  
  6. <struts> 
  7.     <constant name="struts.devMode" value="true" /> 
  8.     <constant name="struts.i18n.encoding" value="GBK" /> <!-- internationalization --> 
  9.     <package name="user" extends="struts-default" namespace="/user"> 
  10.         <action name="userAdd" class="com.wwj.struts2.user.action.UserAction" method="add"> 
  11.             <result>/user_add_success.jsp</result> 
  12.         </action> 
  13.           
  14.         <action name="user" class="com.wwj.struts2.user.action.UserAction"> 
  15.             <result>/user_add_success.jsp</result> 
  16.         </action> 
  17.     </package> 
  18. </struts> 

 

上面的配置文件多了一行常量的引用,<constant name="struts.i18n.encoding" value="GBK">

之前在Struts2.1.6版本是,添加这行是不能解决中文显示为乱码的问题的,听说是Struts2的一个bug,不过现在通过测试,这个bug似乎已经被解决了。只要添加上面那行,就能很好解决中文显示为乱码的问题了。

贴一下实例代码:

UserAction.java

  
  
  
  
  1. package com.wwj.struts2.user.action;  
  2.  
  3. import com.opensymphony.xwork2.ActionSupport;  
  4.  
  5. public class UserAction extends ActionSupport {  
  6.     private String name;  
  7.     public String add() {  
  8.         System.out.println("name=" + name);  
  9.         return SUCCESS;  
  10.     }  
  11.     public String getName() {  
  12.         return name;  
  13.     }  
  14.     public void setName(String name) {  
  15.         this.name = name;  
  16.     }  
  17. }  

 

index.jsp

  
  
  
  
  1. <?xml version="1.0" encoding="GB18030" ?> 
  2. <%@ page language="java" contentType="text/html; charset=GB18030" 
  3.     pageEncoding="GB18030"%> 
  4.  
  5. <%   
  6. String path = request.getContextPath();  
  7. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  8. %> 
  9.  
  10. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  11. <html xmlns="http://www.w3.org/1999/xhtml"> 
  12. <head> 
  13. <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> 
  14. <base href="<%=basePath %>"/> 
  15. <title>Insert title here</title> 
  16. </head> 
  17. <body> 
  18. 使用action属性接收参数,测试中文问题  
  19. <form action="user/user!add" method="post"> 
  20. 姓名:<input type="text" name="name"></input> 
  21. <input type="submit" value="submit"/> 
  22. </form> 
  23.  
  24.       
  25. </body> 
  26. </html> 

相关的测试效果就不贴图了,很简单。

 

你可能感兴趣的:(struts2)