需要修改pager-taglib的源码pagerTag.java的addParam方法如下
final void addParam(String name, String value) {
try {
if (value != null) {
name = java.net.URLEncoder.encode(name,pageContext.getResponse().getCharacterEncoding());
value = java.net.URLEncoder.encode(value,pageContext.getResponse().getCharacterEncoding()); //中文 -> %EA%EF%BD%8E
uri.append(params == 0 ? '?' : '&')
.append(name).append('=').append(value);
params++;
} else {
String[] values = pageContext.getRequest().getParameterValues(name);
if (values != null) {
name = java.net.URLEncoder.encode(name,pageContext.getResponse().getCharacterEncoding());
for (int i = 0, l = values.length; i < l; i++) {
value = java.net.URLEncoder.encode(values[i],pageContext.getResponse().getCharacterEncoding());
uri.append(params == 0 ? '?' : '&')
.append(name).append('=').append(value);
params++;
}
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
如果翻页还乱码,需要修改tomcat的编码为UTF-8
<Connector port="8983" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />