欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

struts2.3.32中文乱码问题解决方案

程序员文章站 2022-03-03 18:37:24
...

struts2.3.32中文乱码问题解决方案

struts2.3.32中文乱码解决方法其实很简单,您只需按照以下几个步骤操作即可:
1、在“struts.xml”配置文件里添加一个“constant”标签,name属性设置为“struts.i18n.encoding”,value设置为“UTF-8”,如下代码所示:
<struts>

    <!-- Add packages here -->
    <constant name="struts.devMode" value="true"/>
    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
    
    <package name="action" namespace="/" extends="struts-default">
    	<default-action-ref name="index"></default-action-ref>
        <action name="index" class="com.java.struts.index" method="add">
            <result name="success">
                /Hello.jsp
            </result>
        </action>
    </package>

</struts>
2、重启tomcat,我们会发现使用“post”方法已经可以支持中文了,但“get”依然不行。
3、打开tomcat安装目录下的conf/server.xml文件,找到这样一个“connector”标签:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
在此标签里添加一个“URIEncoding”属性,值为“UTF-8”;
4、此时已经可以用“get”方式接受中文参数了,但是,当我们重启tomcat之后又不行了,原因何在呢?如果我们再次打开“server.xml”文件会发现,刚修改过的connector标签又被修改成原样了!
是的,如果你用的eclipse开发的就会出现这种情况,因为每当Tomcat服务器在Eclipse中启动时,会自动发布Eclipse中部署的项目,但是我的项目是自己手动在外面部署的,Eclipse只认得在它里面部署的项目,因此它会创建一个新的server.xml文件覆盖原来的文件,里面只有Eclipse中部署的项目。
5、Ecplise项目中有一个Server项目,有一个Tomcat v7.0 Server at localhost-config,里面也有server.xml和content.xml,替换成你修改后的文件。Tomcat重新发布时会用这里的配置文件覆盖Tomcat下的conf下的文件。
struts2.3.32中文乱码问题解决方案