用system输出后才知道是struts2前部分的错误,后来发现struts的action使用的编码是utf-8,而jsp使用的是gbk,解决方案是将jsp和web.xml里的过滤器的编码都改成utf-8,或者将struts的struts.xml改为
<constant name="struts.i18n.encoding" value="gbk" />
spring整合的过滤器编码为:
<filter>
<filter-name>char</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>
<filter-mapping>
<filter-name>char</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>char</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>char</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>