下面是#If指令的一個簡單而完整的示例:
#if ($foo < 10) Go North #elseif ($foo == 10) Go East #else Go West#end 不能漏掉
#if指令用於判斷某個條件是否為true。以上面的代碼為例,當$foo < 10為true時,將會顯示"Go North"。
有時會看到這樣一種寫法:#if($foo) ... #end。這里充當判斷條件的是一個變量$foo,它在兩種情況下是true:一是$foo作為布爾值(Boolean)並且其值為true,二是$foo是一個非布爾值並且值不為null。
關系運算
Velocity的關系運算中有一個==。它和Java中的==不太一樣。java中==嚴格判斷兩個對象是否是同一個對象(內存地址是否是同一個,是否是同一個類的對象),而不是判斷它們的值是否相同(兩個String的字面值是否相同要使用equals()方法)。而Velocity中的==可以直接比較數值,字符串以及其他對象,如果==兩側的對象是不同的類的對象,在比較前會用toString()轉換后再比較。
邏輯運算
Velocity的邏輯運算有AND、OR、NOT三個。表現在語法上是&&、||、!這三個符號。下面是幾個示例:
#if($foo && $bar<10) ... #end #if($foo || $bar) ... #end #if(! $foo ) ... #end
需要注意的是,&&和||是有短路效應的。一旦前一個就可以判斷真假,后面的條件不再進行判斷。另外,要特別注意$!foo和!$foo的區別。