http://blog.csdn.net/yangbobo1992/article/details/10076335

________________________________________________________

最近在用的项目中,分页页面在导出excel抛出

java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern

该页面采用的是DWR分页,经过一番搜罗,终于修成正果.解决办法

 大致意思都懂了,我们只需要将传入后台的参数字符在decode之前使用replaceAll('%','%25')一下即可

  1. try {
  2. pageTitle = java.net.URLDecoder.decode(pageTitle,"UTF-8");
  3. sc = java.net.URLDecoder.decode(sc ,"UTF-8");
  4. } catch (UnsupportedEncodingException e) {
  5. e.printStackTrace();
  6. }

修正后代码如下:

  1. try {
  2. pageTitle = java.net.URLDecoder.decode(pageTitle.replaceAll("%", "%25"),"UTF-8");
  3. sc = java.net.URLDecoder.decode(sc.replaceAll("%", "%25") ,"UTF-8");
  4. } catch (UnsupportedEncodingException e) {
  5. e.printStackTrace();
  6. }

部分引用来自: http://dwr.2114559.n2.nabble.com/Exception-URLDecoder-Incomplete-trailing-escape-pattern-td5396332.html

特别注意:

有些时候导出excel时采用的是get方式导致URL字符串长度过长,改用POST方式可以解决以上问题。

使用js实现POST表单提交代码片段:

  1. function post(URL, PARAMS)
  2. {
  3. //创建一个临时表单
  4. var tempForm = document.createElement("form");
  5. tempForm.action = URL;
  6. tempForm.method = "post";
  7. tempForm.style.display = "none";
  8. //遍历各个参数,将文本域添加至表单中
  9. for (var x in PARAMS)
  10. {
  11. var opt = document.createElement("textarea");
  12. opt.name = x;
  13. opt.value = PARAMS[x];
  14. tempForm.appendChild(opt);
  15. }
  16. //将表单添加至当前页面中.
  17. document.body.appendChild(tempForm);
  18. //提交表单.
  19. tempForm.submit();
  20. }

也可参照此方法解决:http://blog.csdn.net/zhensoft163/article/details/7298161

URLDecoder: Incomplete trailing escape (%) pattern问题处理的更多相关文章

  1. URLDecoder: Incomplete trailing escape (%) pattern

    在使用URLDecoder对字符串进行解码的时候 报以下异常信息: Exception in thread "main" java.lang.IllegalArgumentExce ...

  2. URLDecoder: Illegal hex characters in escape (%) pattern - For input string

    原因:后台发布文章的时候,内容里面有%,导致后台URLDecoder.decode()转码的时候报错. 看了java.net.URLDecoder的decode()的源码,原来是转码错误. 贴出部分代 ...

  3. java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: " 0"

    value = URLDecoder.decode(request.getParameter(paraName), "UTF-8"); 前端用了 encodeURI 来编码参数,后 ...

  4. java转换编码报错java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern

    Exception in thread "main" java.lang.IllegalArgumentException: URLDecoder: Illegal hex cha ...

  5. java上传附件含有%处理或url含有%(URLDecoder: Illegal hex characters in escape (%) pattern - For input string)

    在附件名称中含有%的时候,上传附件进行url编码解析的时候会出错,抛出异常: Exception in thread "main" java.lang.IllegalArgumen ...

  6. URLDecoder异常Illegal hex characters in escape (%)

    URLDecoder对参数进行解码时候,代码如: URLDecoder.decode(param,"utf-8"); 有时候会出现类似如下的错误: URLDecoder异常Ille ...

  7. URLDecoder异常解决方法

    URLDecoder对参数进行解码时候,代码如: URLDecoder.decode(param,"utf-8"); 有时候会出现类似如下的错误: URLDecoder异常Ille ...

  8. URL编码 URLEncoder 示例

    2016-12-27 对字符编码时的规则 通常如果一样东西需要编码,说明这样东西并不适合传输.原因多种多样,如Size过大,包含隐私数据. 对于Url来说,之所以要进行编码,一个是因为Url中有些字符 ...

  9. JAVA判断URL地址是否非法

    /** * 判断请求url是否非法 * @param url * @return */ public static boolean isValidRequestUri(String url) { if ...

随机推荐

  1. mysql安装错误总结

    1.若在启动mysql服务时出现如下错误,可查看错误日志找出错误原因. Error:Starting MySQL.The server quit without updating PID file ( ...

  2. T-SQL 之 存储过程

    当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. 一.存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经 ...

  3. es6- ArrayBuffer

    ArrayBuffer对象.TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口. 简单说: ArrayBuffer对象代表原始的二进制数据, TypedA ...

  4. 算法笔记_045:币值最大化问题(Java)

    目录 1 问题描述 2 解决方案 2.1 动态规划法   1 问题描述 给定一排n个硬币,其面值均为正整数c1,c2,...,cn,这些整数并不一定两两不同.请问如何选择硬币,使得在其原始位置互不相邻 ...

  5. Struts2之文件上传(单文件/多文件)

    <一>简述: Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置,<interceptor name="fileUp ...

  6. ubuntu PATH 出错修复

    我的 ubuntu10.10设置交叉编译环境时,PATH 设置错误了,导致无法正常启动,错误情况如下: { PATH:找不到命令ubuntu2010@ubuntu:~$ ls命令 'ls' 可在 '/ ...

  7. 自增长主键Id的设计

    http://www.cnblogs.com/lhking/p/3945865.html

  8. poi读取excel元素

    Java读取excel元素 忽略元数据末尾回到原数据开始处 pom文件设置 <dependency><groupId>org.apache.poi</groupId> ...

  9. MongoDB,还有一个角度看数据

    传智-玄痛(传智播客北京校区C/C++学院技术指导老师) MongoDB的起源 几年前 10gen 公司做了 SaaS 方面的研发,由于公司一个 MongoDB 产品存储接口的易用性,用户评价很好,公 ...

  10. 字符串函数---itoa()函数具体解释及实现

    itoa()函数 itoa():char *itoa( int value, char *string,int radix); 原型说明: value:欲转换的数据. string:目标字符串的地址. ...