Author: cbrisson
Date: Sun Dec 25 10:06:32 2016
New Revision: 1776001

URL: http://svn.apache.org/viewvc?rev=1776001&view=rev
Log:
[tools] add an .unurl() unescaping method

Modified:
    
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/EscapeTool.java

Modified: 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/EscapeTool.java
URL: 
http://svn.apache.org/viewvc/velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/EscapeTool.java?rev=1776001&r1=1776000&r2=1776001&view=diff
==============================================================================
--- 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/EscapeTool.java
 (original)
+++ 
velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/EscapeTool.java
 Sun Dec 25 10:06:32 2016
@@ -21,6 +21,7 @@ package org.apache.velocity.tools.generi
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
+import java.net.URLDecoder;
 
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.velocity.tools.Scope;
@@ -53,7 +54,8 @@ import org.apache.velocity.tools.config.
  *  $esc.sql($sql)               -> McHale''s Navy
  *
  *  $url                         -> hello here & there
- *  $esc.url                     -> hello+here+%26+there
+ *  $esc.url($url)               -> hello+here+%26+there
+ *  $esc.unurl($esc.url($url))   -> hello here & there
  *
  *  $esc.dollar                  -> $
  *  $esc.d                       -> $
@@ -331,6 +333,27 @@ public class EscapeTool extends SafeConf
         } catch(UnsupportedEncodingException uee) {
             return null;
         }
+    }
+
+    /**
+     * Unscape the characters in a <code>String</code> encoded as an HTTP 
parameter value.
+     * <br/>
+     * Uses UTF-8 as default character encoding.
+     * @param string the string to unescape, may be null
+     * @return a new unescaped <code>String</code>, <code>null</code> if null 
string input
+     *
+     * @see java.net.URLDecoder#decode(String,String).
+     * @since VelocityTools 3.0
+     */
+    public String unurl(Object string) {
+        if (string == null) {
+            return null;
+        }
+        try {
+            return URLDecoder.decode(String.valueOf(string),"UTF-8");
+        } catch(UnsupportedEncodingException uee) {
+            return null;
+        }
     }
 
     /**


Reply via email to