关于Struts2的编码问题

    xiaoxiao2022-12-10  50

    在使用Strust2框架中,经常会遇到乱码问题,本人也深受其害,特别是在jsp到action提交过程中。在平时敲代码过程重,也小小地总结了一些经验: 在jsp到action中,有两种提交方式:第一种是get类,一般见于地址栏的拼接传递、超链接以及get类表单,因为在get提交过程中,Struts2是使用服务器默认的编码格式,所以我们要在服务器中设置它的编码格式,比如我们设置编码为“UTF-8”,在服务器位置的conf/server.xml中找到配置属性:

    <Connector port="8999" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

    添加属性:URIEncoding=“UTF-8”

    <Connector port="8999" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>

    这样就设置了服务器的编码格式,顺便说一下,这里的port属性可以更改服务器的默认端口。 注意,在jsp中应该设置页面输出编码格式

    <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

    这样整个流程中都是UTF-8的编码格式了。 而对于post格式,因为它在传递过程中是使用协议传输,因此与服务器无关,我们要设置action的接收编码格式:

    request.setCharacterEncoding="UTF-8" 也可以设置Struts2的默认编码格式,在Struts.xml的根标签中设置: <constant name="struts.i18n.encoding" value="UTF-8"/>

    也可以设置拦截器,设置其请求编码与响应编码:

    request.setCharacterEncoding(“UTF-8”); response.setCharacterEncoding(“UTF-8”);

    无限制放行即可

    最新回复(0)