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
虽然在本指南中的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