关于Struts2的编码问题

在使用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”);

无限制放行即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值