<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <constant name="struts.i18n.encoding" value="GBK" /> </struts>
如果按帮助文档说明,编码应该是这样设置的。调试了很久还不行后来上网查了才知道这个2.16版本的一个BUG,它的下一个版本就改正过来了。如果要解决中文问题只能用过滤器了。
不过有个有趣的问题,在web.xml
<filter>
<filter-name>struts2</filter-name>
<!--<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>-->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
只要org.apache.struts2.dispatcher.FilterDispatcher(用2.0版本的使用的)就可以用中文了,不过官方推荐用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
这样看来是org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter这个类有问题,具体有什么问题我也没去了解