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