jmesa查询条件中文的编码转换问题
程序员文章站
2022-04-01 22:06:35
...
环境说明:
1.页面编码配置:
2.tomcat 的conf/server.xml中加了
3.工程添加了Filter ,doFilter 其中encoding=“GBK”
用jmesa的查询方法并不支持中文查询,发现limit.getFilterSet()中value是乱码,修改提交方式(post/get)没有效果,以下是解决方法,修改后工程其他部分功能暂没有发现受到影响:
1.jmesa.js文件的160行修改为
2.添加
1.页面编码配置:
<%@ page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
2.tomcat 的conf/server.xml中加了
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" useBodyEncodingForURI="true" />
3.工程添加了Filter ,doFilter 其中encoding=“GBK”
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if(ignore || request.getCharacterEncoding() == null) { String encoding = selectEncoding(request); if(encoding != null) request.setCharacterEncoding(encoding); } chain.doFilter(request, response); }
用jmesa的查询方法并不支持中文查询,发现limit.getFilterSet()中value是乱码,修改提交方式(post/get)没有效果,以下是解决方法,修改后工程其他部分功能暂没有发现受到影响:
1.jmesa.js文件的160行修改为
url += '&' + limit.id + '_f_' + filter.property + '=' + encodeURIComponent(encodeURIComponent(filter.value));
2.添加
Limit limit = tableFacade.getLimit(); List<Filter> li=new ArrayList(limit.getFilterSet().getFilters()); limit.getFilterSet().getFilters().clear(); for(int k=0;k<li.size();k++){ limit.getFilterSet().addFilter(li.get(k).getProperty(), URLDecoder.decode(li.get(k).getValue(),"utf-8")); }