Velocity 模板语言:如何导入 EscapeTool
Velocity Template Language: How to import EscapeTool
我正在尝试使用 unurl
作为我的映射模板。
$url -> hello here & there
$esc.url($url) -> hello+here+%26+there
$esc.unurl($esc.url($url)) -> hello here & there
我写了下面的映射模板,但是$esc.unurl([...])
不起作用。我不知道如何解决它。一个原因可能是我缺少导入,但我不知道如何正确导入 EscapeTool。
#set($httpPost = $input.path('$').split("&"))
{
#foreach( $kvPair in $httpPost )
#set($kvTokenised = $kvPair.split("="))
#if( $kvTokenised.size() > 1 )
"$kvTokenised[0]" : "$esc.unurl($kvTokenised[1])"#if( $foreach.hasNext ),#end
#else
"$kvTokenised[0]" : ""#if( $foreach.hasNext ),#end
#end
#end
}
您需要将其添加到 tools.xml
Example tools.xml config (if you want to use this with VelocityView):
<tools>
<toolbox scope="application">
<tool class="org.apache.velocity.tools.generic.EscapeTool"/>
</toolbox>
</tools>
或使用 code:
将其添加到速度上下文中
ModelMap model = new ModelMap();
model.put("esc", new EscapeTool());
VelocityEngineUtils.mergeTemplateIntoString(
velocityEngine, "template.vm", "UTF-8", model)
我正在尝试使用 unurl
作为我的映射模板。
$url -> hello here & there
$esc.url($url) -> hello+here+%26+there
$esc.unurl($esc.url($url)) -> hello here & there
我写了下面的映射模板,但是$esc.unurl([...])
不起作用。我不知道如何解决它。一个原因可能是我缺少导入,但我不知道如何正确导入 EscapeTool。
#set($httpPost = $input.path('$').split("&"))
{
#foreach( $kvPair in $httpPost )
#set($kvTokenised = $kvPair.split("="))
#if( $kvTokenised.size() > 1 )
"$kvTokenised[0]" : "$esc.unurl($kvTokenised[1])"#if( $foreach.hasNext ),#end
#else
"$kvTokenised[0]" : ""#if( $foreach.hasNext ),#end
#end
#end
}
您需要将其添加到 tools.xml
Example tools.xml config (if you want to use this with VelocityView):
<tools> <toolbox scope="application"> <tool class="org.apache.velocity.tools.generic.EscapeTool"/> </toolbox> </tools>
或使用 code:
将其添加到速度上下文中ModelMap model = new ModelMap(); model.put("esc", new EscapeTool()); VelocityEngineUtils.mergeTemplateIntoString( velocityEngine, "template.vm", "UTF-8", model)