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;
+ }
}
/**