velocity的中文指南(5)
阿新 • • 發佈:2019-02-17
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