12.3.2 关系和逻辑操作符

Velocity 使用等式操作符来决定两个变量间的关系。这里是一个简单的例子演示如何使用等式操作符:

#set ($foo = "deoxyribonucleic acid")
#set ($bar = "ribonucleic acid")

#if ($foo == $bar)
 In this case it's clear they aren't equivalent. So...
#else
 They are not equivalent and this will be the output.
#end

Velocity 也具有逻辑AND, or 和 NOT 操作符。更进一步的信息,请看VTL参考手册VTL Reference Guide 。下面是一些演示如何使用逻辑操作符的例子:

## logical AND

#if( $foo && $bar )
   <strong> This AND that</strong>
#end

例子中#if() 指令仅在$foo 和$bar 斗为真的时候才为真。如果$foo 为假,则表达式也为假;并且 $bar 将不被求值。如果 $foo 为真,Velocity 模板引擎将继续检查$bar;的值,如果 $bar 为真,则整个表达式为真。并且输出This AND that 。如果 $bar 为假,将没有输出因为整个表达式为假。

逻辑OR 的工作方式相同,唯一的例外是其中一个表达式要被求值,以便决定整个表达式是否为真。请看下面的例子:

## logical or

#if( $foo || $bar )
    <strong>This or That</strong>
#end

如果 $foo 为真,Velocity 模板引擎就不需要去察看$bar 的值,不管 $bar 是否为真,真个表达式都为真,因此输出This or That 。如果 $foo 为假,$bar 就必须检查其值了。在这种情况下,如果$bar 也是为假,表达式将为假,没有任何输出。当然,如果$bar 为真,则真个表达式为真,输出This or That。

对于逻辑NOT 操作符,只有一个操作数:

##logical NOT

#if( !$foo )
 <strong>NOT that</strong>
#end

这里,如果$foo 为真,!$foo 求值为假,没有输出。如果$foo 为假,!$foo 求值为真,输出NOT that 。请当心,不要和安静引用quiet reference $!foo 混淆它们是完全不同的。