分页技术框架(Pager-taglib)学习三(pager-taglib中传递参数时中文乱码问题)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分页技术框架(Pager-taglib)学习三(pager-taglib中传递参数时中文乱码问题)相关的知识,希望对你有一定的参考价值。

一、问题描述

       问题:

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

原因:

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

 

  二、问题解决方法

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

 

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

技术分享

1.首先将pager-src.jar中的文件解压出来.

    可以看到这里面有两个文件

 

 

2.eclipse中创建一个空的javaProject项目,命名pager-taglib,

    将上面解压的两个文件复制进去

 

3.由于上面的类中用到了javax.servlet.*中的一些类

所以要导入javaee.jar

 

    如果在myeclipse中,则直接导入javaee5jar包,或者将整个JavaEE 5 Libraries导入

技术分享

  

4.然后修改

在com\jsptags\navigation\pager下面的PagerTagaddParam(String name, String value)中,它原本是采用的URLEncoding.encode(value)方式来对传递的参数进行编码的,修改成为 URLEncoding.encode(value, "UTF-8")。当然URLEncoding.encode(name)也可以修改为URLEncoding.encode(name, "UTF-8"),最后使用try/catch进行异常捕捉

 

5.导出jar

export--->java---->java jar file导成jar

 

6.重新导入到web项目中即可

以上是关于分页技术框架(Pager-taglib)学习三(pager-taglib中传递参数时中文乱码问题)的主要内容,如果未能解决你的问题,请参考以下文章

Spring3+ibatis (SQL Server)+pager-taglib.tld查询分页的实现

WPF项目学习.三

Mybatis 框架学习——如果世界真的那么简单就好了

对ThinkPHP 框架看法和建议

后端学习后端技术要点总结

PyTorch使用总览