关闭

Velocity学习笔记7——引用的不同形式

1393人阅读 评论(0) 收藏 举报
正式的引用符号:
在以前的例子中使用的都是引用的简写形式,引用还有一种正式的形式,如下面的例子所示:
${mudSlinger}
${customer.Address}
${purchase.getTotal()}
几乎在所有的情况下都可以使用引用的简写形式,但是有些时候还是必须使用正式形式。
假设你创建了一个句子,其中包含引用$vice作为一个名词基本词根,目的是允许用户选择这个基本词来创建下面的语句中的一个”Jack is a pyromaniac”或者”Jacd is a kleptomaniac”。这里红色的地方是$vice引用将要取代的部分。在这里使用简写形式是不恰当的。如果写成简写形式,就是下面的样子:
Jack is a $vicemaniac.
这样就很不明确, Velocity引擎会认为$vicemaniac是你要使用的引用,而不是$vice。使用正式形式就会避免这种情况:
Jack is a ${vice}maniac.
Now Velocity knows that $vice, not $vicemaniac, is the reference. Formal notation is often useful when references are directly adjacent to text in a template.
现在Velocity引擎就知道你使用的引用是$vice,而不是$vicemaniac。正式形式通常用在模板中引用后面直接跟文本的情况下。
 
安静的引用形式(Quiet Reference Notation
当Velocity引擎遇到一个没有定义的引用的时候,它通常的做法是直接将这个引用输出。例如下面的句子出现在一个VTL模板中:
<input type="text" name="email" value="$email"/>
如果当这段代码初始化的时候,变量$email还没有赋值,那么Velocity引擎会输出:
<input type="text" name="email" value="$email"/>
也就是说对$email没有任何处理,直接原样输出。
使用安静的引用形式,可以避免Velocity引擎的这种通常的处理方法。安静的引用形式是:$!eamil。这样上面的例子就变成了:
<input type="text" name="email" value="$!email"/>
现在,当这段代码初始化的时候,如果$email还是没有值,那么输出时就会用一个空字符串来代替$email,这时上面的例子的输出就是:
input type="text" name="email" value=""/>
正式形式和安静形式可以一起使用,如下:
<input type="text" name="email" value="$!{email}"/>
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:51454次
    • 积分:770
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:6篇
    • 译文:7篇
    • 评论:7条
    文章分类
    最新评论
    我的其他blog