displaytag分页中文处理
来源:互联网 发布:广州行知职业技术学校 编辑:程序博客网 时间:2024/05/24 07:18
displaytag参考:
http://blog.sina.com.cn/s/blog_6b184a840100lavn.html
http://www.knowsky.com/1045905.html
直接修改class方法参考:
http://jingyan.baidu.com/article/4d58d541017fd39dd4e9c005.html
网上处理方案大部分都是改tomcat
个人还是喜欢改源码的方式:
更改DefaultRequestHelper
更改后:
/** * Licensed under the Artistic License; you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * * http://displaytag.sourceforge.net/license.html * * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */package org.displaytag.util;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.util.Enumeration;import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.lang.ObjectUtils;import org.apache.commons.lang.StringUtils;import org.apache.commons.lang.UnhandledException;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.displaytag.Messages;/** * Default RequestHelper implementation. * @author Fabrizio Giustina * @version $Revision: 1104 $ ($Author: fgiust $) * @see org.displaytag.util.Href * @see org.displaytag.util.RequestHelper */public class DefaultRequestHelper implements RequestHelper{ /** * logger. */ private static Log log = LogFactory.getLog(DefaultRequestHelper.class); /** * original HttpServletRequest. */ private HttpServletRequest request; /** * original HttpServletResponse. */ private HttpServletResponse response; /** * Construct a new RequestHelper for the given request. * @param servletRequest HttpServletRequest needed to generate the base href * @param servletResponse HttpServletResponse needed to encode generated urls */ public DefaultRequestHelper(HttpServletRequest servletRequest, HttpServletResponse servletResponse) { this.request = servletRequest; this.response = servletResponse; } /** * @see org.displaytag.util.RequestHelper#getHref() */ public Href getHref() { String requestURI = this.request.getRequestURI(); // call encodeURL to preserve session id when cookies are disabled Href href = new DefaultHref(this.response.encodeURL(requestURI)); href.setParameterMap(getParameterMap()); return href; } /** * @see org.displaytag.util.RequestHelper#getParameter(java.lang.String) */ public String getParameter(String key) { // actually simply return the parameter, this behaviour could be changed return this.request.getParameter(key); } /** * @see org.displaytag.util.RequestHelper#getIntParameter(java.lang.String) */ public Integer getIntParameter(String key) { String value = this.request.getParameter(key); if (value != null) { try { return new Integer(value); } catch (NumberFormatException e) { // It's ok to ignore, simply return null log.debug(Messages.getString("RequestHelper.invalidparameter", //$NON-NLS-1$ new Object[]{key, value})); } } return null; } /** * @see org.displaytag.util.RequestHelper#getParameterMap() */ /* public Map getParameterMap() { Map map = new HashMap(); // get the parameters names Enumeration parametersName = this.request.getParameterNames(); while (parametersName.hasMoreElements()) { // ... get the value String paramName = (String) parametersName.nextElement(); request.getParameter(paramName); // put key/value in the map String[] originalValues = (String[]) ObjectUtils.defaultIfNull( this.request.getParameterValues(paramName), new String[0]); String[] values = new String[originalValues.length]; for (int i = 0; i < values.length; i++) { try { values[i] = URLEncoder.encode(StringUtils.defaultString(originalValues[i]), StringUtils .defaultString(response.getCharacterEncoding(), "UTF8")); //$NON-NLS-1$ } catch (UnsupportedEncodingException e) { throw new UnhandledException(e); } } map.put(paramName, values); } // return the Map return map; }*/ //解决中文支持问题 public Map getParameterMap() { Map map = new HashMap(); // get the parameters names Enumeration parametersName = this.request.getParameterNames(); while (parametersName.hasMoreElements()) { // ... get the value String paramName = (String) parametersName.nextElement(); request.getParameter(paramName); // put key/value in the map String pName=""; String[] originalValues = (String[]) ObjectUtils.defaultIfNull( this.request.getParameterValues(paramName), new String[0]); try { if(originalValues[0]!=null){ if(isContainChinese(originalValues[0])){ pName=originalValues[0]; }else{ pName=new String(originalValues[0].getBytes("ISO-8859-1"),"UTF-8"); } } } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { pName = URLEncoder.encode(StringUtils.defaultString(pName), StringUtils .defaultString(response.getCharacterEncoding(), "UTF8")); //$NON-NLS-1$ }catch (UnsupportedEncodingException e) { throw new UnhandledException(e); } map.put(paramName, pName); } //return the Map return map; } public boolean isContainChinese(String str) { Pattern p = Pattern.compile("[\u4e00-\u9fa5]"); Matcher m = p.matcher(str); if (m.find()) { return true; } return false; }}
完美解决。
阅读全文
0 0
- displaytag分页中文处理
- DisplayTag中文查询分页解决方案
- struts2使用 displaytag 分页异常的处理
- struts2使用 displaytag 分页异常的处理
- 解决:displaytag分页get提交出现中文乱码
- displaytag分页 使用
- DisplayTag 分页 PaginatedList实现
- displaytag实现内存分页
- Displaytag实现分页
- DisplayTag中文乱码
- displaytag 中文问题
- 基于displaytag大批量数据分页
- 基于displaytag大批量数据分页
- displaytag分页导航的国际化
- s2sh displaytag大量数据分页
- SubList分页-003-中文处理
- displaytag中文乱码的解决办法
- DisplayTag 1.1 Released,可分页读取数据!!!
- bitmap格式相关
- 关于在 eclipse R cannot be resolved to a variable 解決
- APP的开发流程概要
- Quartz定时任务使用详解
- Mac下mysql登陆问题
- displaytag分页中文处理
- Android TextView字体加粗
- 中国大学慕课C语言第一讲笔记
- boost源码剖析之:泛型编程精灵type_traits(rev#2)
- 硬币问题(刘汝佳266,)
- wampserver you don't have permission to access / on this server. 解决 方法
- Python3.6 scoket练习笔记
- 设计模式之六大原则
- 任何一个问题,都不是别人的问题