struts2 編碼方式配置:
1。采用自定義的方法。寫個類繼承 org.apache.struts2.dispatcher.FilterDispatcher
public class NewFilterDispatcher extends FilterDispatcher {
private static String encoding = "UTF-8";
public void init(FilterConfig filterConfig) throws ServletException {
super.init(filterConfig);
String encodingParam = filterConfig.getInitParameter("encoding");
if (encodingParam != null && encodingParam.trim().length() != 0) {
encoding = encodingParam;
}
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
super.doFilter(request, response, chain);
}
}
<filter>
<filter-name>struts</filter-name>
<!-- 自定義類 -->
<filter-class>
com.zh.test.filter.NewFilterDispatcher
</filter-class>
<init-param>
<!-- 編碼方式 -->
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2。另外,還可以直接在web.xml中配置sping的編碼支持。
<filter>
<filter-name>setCharacterEncoding</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>
</filter>
<!-- filtered type -->
<filter-mapping>
<filter-name>setCharacterEncoding</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
當用第一種方法時,在tomcat6 啟動默認工程時,會產生xml解析錯誤。也許是我犯的錯誤吧。不過tomcat6 jdk6 就是出現了問題。
現在的情況是等項目做完時,想改動代碼編碼方式時,根本就不能修改的。沒有辦法了。
參考文件:
http://www.iocblog.net/static/2007/587.html