我有以下片段要从速度模板文件中渲染。
xyz $$foo
美元符号需要从 VTL 解析器中转义。在模板文件中,我将其表示为
xyz \$\$foo
我预计
xyz $$foo
但我明白了
xyz \$foo
我究竟做错了什么??
一种方法是使用固定的字符串变量,即为 $ 符号设置一个变量,然后使用它。
#set ( $d = "$")
xyz ${d}${d}foo
它给出了预期的输出
xyz $$foo
您可能还想查看EscapeTool的速度。
一旦将它包含在上下文中(例如,在名称“esc”下),您就可以使用 ${esc.d} 来获取美元符号。不过,对于这种特殊情况,您提到的方法更容易。
我认为值得一提,因为它提供了其他几种方便的方法来适当地转义字符串,如果您的模板正在生成 Java/javascript/html 等。
使用 Velocity 的NumberTool也可能会有所帮助。
它有一个内置的货币格式化程序:
$myNumber -> 13.55
$number.format($myNumber) -> 13.6
$number.currency($myNumber) -> $13.55
$number.integer($myNumber) -> 13