ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
## 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那章节会更详细描述。