zoukankan      html  css  js  c++  java
  • URLDecoder: Incomplete trailing escape (%) pattern问题处理

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

    ________________________________________________________

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

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

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

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

    Java代码  收藏代码
    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. }    

     修正后代码如下:

    Java代码  收藏代码
    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表单提交代码片段:

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

     

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

  • 相关阅读:
    error: with modifiers "public "
    移除元素
    删除有序数组中的重复项
    最长公共前缀
    如何杀死window进程
    IDEA卡顿问题
    合并两个有序链表
    开闭原则
    字符集和sql语句GROUPBY查询的版本问题
    里氏替换原则
  • 原文地址:https://www.cnblogs.com/cuizhf/p/4212461.html
Copyright © 2011-2022 走看看