strust2.1.6的中文问题

理论上,在一段如下struts配置文件中

<struts>
    <constant name="struts.devMode" value="true" />
    <constant name="struts.i18n.encoding" value="GBK" /> <!-- internationalization -->
    <package name="user" extends="struts-default" namespace="/user">
        <action name="userAdd" class="com.bjsxt.struts2.user.action.UserAction" method="add">
            <result>/user_add_success.jsp</result>
        </action>
        
        <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
            <result>/user_add_success.jsp</result>
        </action>
    </package>
</struts>

加粗部分就应该解决了中文现实的问题,但实际上却不能解决。没有办法,这是个2.1.6的bug。

正确的解决办法有两种,一个是升级到2.1.7,另一个是在web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
  <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>
</web-app>

中修改filter。加粗的部分上面是2.1.6的filter,只需把这个filter改为下面那个即可。下面那个是2.0的filter,但是改完之后会出现什么问题,那就不知道了,至少中文问题可以解决。

posted on 2012-03-12 03:05  friday295  阅读(121)  评论(0编辑  收藏  举报

导航