ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 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 要求等号两边的对象具有相同的类型。