struts2中提供了中文乱码的解决方法,在struts.xml中添加下面代码:
<constant name="struts.i18n.encoding" value="UTF-8"/>
i18n是internationalization(国际化)
这些配置可以去struts2-core-2.1.8.1.jar下的org.apache.struts2包里的default.properties去查找。
但在struts2.1.6 里面即使添加了上面的代码,也不会解决乱码问题。因为这是个bug。后面的版本已经把这个bug修正过来了。
外注:每个jsp页面的编码最好都改成UTF-8,保持一致。
如使用struts2.1.6可以使用spring的Filter解决中文编码问题
在web.xml中struts的filter之前添加spring的filter如下:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>