13.2. 转义 有效的 VTL 指令
某些情况使用Velocity可能会觉得很烦恼。逃避特殊符是处理出现在你的模板中VTL特殊符有效方法,就是使用反斜杠(“\”)。
#set( $email = "foo" )
$email
假如Velocity在你的模板中遇到$email,它会搜索上下文,得到相应的值。这里的输出是foo,因为$email被定义了。假如$email没有被定义,输出会是$email。
设想$email被定义了(例如,它的值是foo),而且你想输出$email。这里有几种方法能达到目的,但是最简单的是使用逃避符。
## The following line defines $email in this template:
#set( $email = "foo" )
$email
\$email
将显示为:
foo
$email
注意到“\”屏蔽了左边的“$”。屏蔽左边规则,使得\$email显示为\$email。那些例子与$email没有定义相比较。
$email
\$email
\\$email
\\\$email
将显示为:
$email
\$email
\\$email
\\\$email
\\$email\\\$email
注意Velocity处理定义了的references与没有定义的不一样。这里set$foo的值为gibbous。
#set( $foo = "gibbous" )
$moon = $foo
输出会是:$moon=gibbous,$moon
按照字面上输出因为它没有定义,gibbous替代$foo输出。避开VTL的directives还有其他方法,在Directives那章节会更详细描述。