pager-taglib分页控件查询参数乱码解决方法

当使用pager-taglib传递包含中文的查询参数时,可能出现乱码。解决方法包括:1) 修改pager-taglib的源码,将URLEncoding.encode(value)改为URLEncoding.encode(value, "UTF-8");2) 在web.xml中添加一个名为SetCharacterEncodingFilter的过滤器,设置页面编码为GB2312。" 56681011,5892136,Ubuntu 14.04 虚拟机中安装VMware Tools详细步骤,"['虚拟机', 'Linux', 'Ubuntu', 'VMware', '图形界面']
摘要由CSDN通过智能技术生成

以前搞了很长时间一直没解决jsp pager-tablib查询带中文参数出现乱码的错误。今天花了相对较少的时间解决了很开心,原因和解决方法如下:

 

问题:

使用<pg:param name="key" />标签传递中文参数时,会有乱码。

 

原因:

因为它默认是用gb2312来对添加的参数进行编码,如果你的过滤器、jsp页面都是采用的gb2312就没有什么问题,如果你采用的是utf-8来编码,那么中文参数传递过程中就会出现乱码导致无法解析。

 

网上有很多解决办法,重新修改编译源代码是一种方法;

在com/jsptags/navigation/pager下面的PagerTag的addParam(String name, String value)中,它原本是采用的URLEncoding.encode(value)方式来对传递的参数进行编码的,修改成为 URLEncoding.encode(value, "UTF-8")后,替换掉原来jar包的这个class文件再重新打包并引入到项目中就可以了。

也以前也有人建议,加过滤器,修改服务器编码/jsp编码为一致,加URLEncoding都未解决,当时页面都是设置为utf-8 的,一直没搞定。

 

解决办法:

将JSP页面编码pageEncoding设置为GB2312,在web.xml中加中文过滤器,即可解决!

<!-- 解决中文问题 -->
    <filter>
        <filter-name>SetCharacterEncodingFilter</filter-

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值