为解决中文可能乱码的问题,需要在页面、服务器过滤器、struts2配置、项目文件编码、tomcat编码保持一致,建议使用UTF-8。
JSP页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
web.xml:
<!-- EncodingFilter -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>com.devframe.web.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
struts.xml
<constant name="struts.i18n.encoding" value="utf-8" />
tomcat server.xml
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" />
试一下!
TroubleShooting:
有时发现即使上面都配置正确了,依然会出现中文乱码的问题。这时需要判断是哪个环节出现的乱码,比如页面传到后台时就出现了。
一种可能性是其他的filter影响了encoding filter对中文的编码。调整filter内容或顺序可以解决这个问题!