1. 程式人生 > >velocity的中文指南(5)

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