velocity的中文指南(5)

VTL: 格式化

虽然在本指南中的VTL经常显示在新行中或者有空格,但是下面的VTL

#set( $imperial = ["Munetaka","Koreyasu","Hisakira","Morikune"] )

#foreach( $shogun in $imperial )

    $shogun

#end



和下面的写法同样有效。
正在装载数据……

Send me #set($foo = ["$10 and ","a cake"])#foreach($a in $foo)$a #end please.



Velocity的行为并不受空格的影响,前述的指令也可以写成:

Send me

#set( $foo = ["$10 and ","a cake"] )

#foreach( $a in $foo )

$a

#end

please.



或者

Send me

#set($foo       = ["$10 and ","a cake"])

                 #foreach           ($a in $foo )$a

         #end please.



上面每种写法结果都一样。
2.       其它特征和杂项
2.1.     数学特征

Velocity 有一些内建的数学功能,可以使用set指令用在模版中。下面的共识分别演示了加减乘除运算:

#set( $foo = $bar + 3 )

#set( $foo = $bar - 4 )

#set( $foo = $bar * 6 )

#set( $foo = $bar / 2 )



当进行除法运算时,结果将会是整数。When a division operation is performed, the result will be an integer. 余数则可以通过模(%)运算获得。

#set( $foo = $bar % 5 )



在Velocity 中,只有整数可以进行数学运算;如果执行非整数的数学运算,将被记录下来,并返回null 。
2.2.     范围操作符

范围操作符可以和#set 和#foreach 语句一起使用。有助于产生一个整数的目标数组,范围操作符有以下的结构:

[n..m]



n 和 m 都必须是整数或者可以产生整数。不管 m 大于或者小于n 都没关系;在m小于n这种情况下,范围可以向下计数。下面是使用范围操作符的例子:

第一个例子

#foreach( $foo in [1..5] )

$foo

#end



第二个例子

#foreach( $bar in [2..-2] )

$bar

#end



第三个例子

#set( $arr = [0..1] )

#foreach( $i in $arr )

$i

#end



第四个例子

[1..3]





他们分别产生一下输出

1 2 3 4 5



2 1 0 -1 -2



0 1



[1..3]



范围操作符和#set 和#foreach 指令一起使用时,只是产生数组。

页面设计人员在设计具有相同尺寸的表格时,有时没有足够的数据来填充,他们会发现范围操作符非常有用。
2.3.     进阶:转义和!

当一个引用被! 字符处于静寂模式,并且! 字符在转义符\ 前出现,应用将用一种特别的方式处理。请注意他和常规转义的不同,下面这种情况\ 先于! 出现:

#set( $foo = "bar" )

$\!foo

$\!{foo}

$\\!foo

$\\\!foo



这样将被加工成

$!foo

$!{foo}

$\!foo

$\\!foo





对比常规转义,\先于 $:

\$foo

\$!foo

\$!{foo}

\\$!{foo}





这是结果是:

\$foo

\$!foo

\$!{foo}

\bar

你可能感兴趣的:(设计模式,数据结构,velocity)