Velocity语法强化4之语义问题

一般情况下,velocity使用$,#字符来标志它的声明,但有时,HTML中因为某种其它意图,也会写出这样的字符,我们讨论如何消除这种语义歧义问题. 

1.Currency(货币标志) 

如美元 $2.50!这样的写法出现到模板中, VTL处理时是不会出错,会正确的输出$2.50!这个你想要的结果。为什么呢?一个合法的VTL标示符是以一个字母开头的,我们前面己说过. 

2.Escaping Valid VTL References(封装有效的引用) 

如下示,如果没有#set( $email = "foo" )这一行且java代码中Context对象中没有放放email对象,将直接输出$email.

#set( $email = "foo" )

$email

如果email己定义了 (比如它的值是 foo),而这里你却想输出 $email. 这样一个字符串,就需要使用转义字符”\”. 

## The following line defines $email in this template:

#set( $email = "foo" )

$email

\$email

\\$email

\\\$email

上面的模板在web页面上的输出将是: 

foo

$email

\foo

\$email

但如果email并没有定义,我们这样写:. 

$email

\$email

\\$email

\\\$email

输出就原封不动了:

$email

\$email

\\$email

\\\$email

注意:当己定义变量和未定义变量一起输出时,会输出字面意思,如下便,$moon是未定义的: 

#set( $foo = "gibbous" )

$moon = $foo

输出到web页面中将是

 $moon = gibbou 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值