使用反斜杠无法正常运行美元符号速度

时间:2013-03-21 12:33:55

标签: java velocity

我有以下段来从速度模板文件中渲染。

xyz $$foo

美元符号需要从VTL解析器中转义。在模板文件中,我将其表示为

xyz \$\$foo

我希望

xyz $$foo

但我得到

xyz \$foo

我做错了什么?

3 个答案:

答案 0 :(得分:40)

其中一种方法是使用固定的字符串变量,即为$符号设置变量然后使用它。

#set ( $d = "$")
xyz ${d}${d}foo

它给出了预期的输出

xyz $$foo

答案 1 :(得分:2)

您可能还想查看EscapeTool的速度。

一旦将其包含在上下文中(例如,名称为“esc”),您就可以使用$ {esc.d}来获取美元符号。您提到的方法对于这种特殊情况更容易。

我认为值得一提的是,如果您的模板生成Java / javascript / html等,它提供了其他一些方便的方法来转义字符串。

答案 2 :(得分:-1)

使用Velocity' lodash也可能会有所帮助。

它有一个内置的货币格式化程序:

$myNumber                   -> 13.55
$number.format($myNumber)   -> 13.6
$number.currency($myNumber) -> $13.55
$number.integer($myNumber)  -> 13