### 12.3.1 If / ElseIf / Else
Velocity中的\#if 指令允許在頁面生成時,在IF條件為真的情況下包含文本。例如:
```
#if( $foo )
<strong>Velocity!</strong>
#end
```
變量 $foo 先求值,以決定是否為真。在這兩種情況下為真: (i) $foo 是一個邏輯變量并具有真的值,或者 (ii) 值非空。要記住Velocity 上下文僅包括對象,所以當我們說“布爾”'boolean'時,他會被表示為“布爾類”(Boolean class)。這對即使是返回布爾類型的方法也是真的—自省架構將返回一個具有相同邏輯值的布爾類。
如果求值為真時, \#if 和 \#end 語句之間的內容將輸出。在這種情況下,如果 $foo 為真,輸出將是"Velocity!"。相反,如果 $foo 具有一個null 值,或者邏輯假,語句求值為假,則沒有輸出。
一個 \#elseif 或者 \#else 項可以用在\#if 語句中。請注意, Velocity 模板引擎將在第一個為真的表達式時停止。下面的例子中,假設$foo 具有值15 而 $bar 等于 6。
```
#if( $foo < 10 )
<strong>Go North</strong>
#elseif( $foo == 10 )
<strong>Go East</strong>
#elseif( $bar == 6 )
<strong>Go South</strong>
#else
<strong>Go West</strong>
#end
```
在這個例子中,$foo 大于10,所以前面兩個比較失敗。接下來比較$bar 和6,結果為真,所以輸出為Go South。
請注意在現在, Velocity的數值比較約束為整型—其他類型都將求值為false。僅有一個例外是等于'==',這時Velocity 要求等號兩邊的對象具有相同的類型。
- 1. 關于
- 2. 什么是Velocity?
- 3. Velocity 可以做什么?
- 3.1. Mud Store 示例
- 4. Velocity模板語言(VTL): 介紹
- 5. Hello Velocity World!
- 6. 注釋
- 7. 引用
- 7.1. 變量Variables
- 7.2. 屬性
- 7.3. 方法
- 8. 形式引用符Formal Reference Notation
- 9. 安靜引用符Quiet Reference Notation
- 11. Case Substitution
- 12. 指令
- 12.1. #set
- 12.2. 字面字符串
- 12.3. 條件
- 12.3.1 If / ElseIf / Else
- 12.3.2 關系和邏輯操作符
- 12.4. 循環
- 12.4.1. Foreach 循環
- 12.5. 包含
- 12.6. 解析
- 12.7. 停止
- 12.10. 宏
- 12.10.1. Velocimacro 參數
- 12.10.2. Velocimacro 屬性
- 12.10.3. Velocimacro Trivia
- 13. Getting literal
- 13.1. 貨幣字符
- 13.2. 轉義 有效的 VTL 指令
- 13.3. 轉義 無效的 VTL 指令
- 14. VTL 格式化問題
- 15. 其它特征和雜項
- 15.1. 數學特征
- 15.2. 范圍操作符
- 15.3. 進階:轉義和!
- 15.4. Velocimacro 雜記
- 15.5. 字符串聯