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

  • 相关阅读:
    Android activity生命周期
    Android ListView用法
    Android TextWatcher的使用方法(监听ExitText的方法)
    Android EditText禁止换行键(回车键enter)
    Android 数据存储-文件读写操作
    Android Spinner组件的使用方法
    IntelliJ IDEA下maven Spring MVC配置
    MyBatis配置文件中报错:URI is not registered(Settings | Languages & Frameworks | Schemas and DTDs)
    Eclipse下创建Spring MVC web程序--非maven版
    C# 时间与时间戳互转
  • 原文地址:https://www.cnblogs.com/cuizhf/p/4212461.html
Copyright © 2011-2022 走看看