比较标签用于简单的变量比较,复杂的判断条件可以用if标签替换,比较标签是一组标签的集合,基本上用法都一致,如下: ~~~ <比较标签 name="变量" value="值"> 内容 </比较标签> ~~~ 系统支持的比较标签以及所表示的含义分别是: | 标签 | 含义 | |-----|-----| | eq或者 equal | 等于 | | neq 或者notequal | 不等于 | | gt | 大于 | | egt | 大于等于 | | lt | 小于 | | elt | 小于等于 | | heq | 恒等于 | | nheq | 不恒等于 | 他们的用法基本是一致的,区别在于判断的条件不同,并且所有的比较标签都可以和else标签一起使用。 例如,要求name变量的值等于value就输出,可以使用: ~~~ <eq name="name" value="value">value</eq> ~~~ 或者 ~~~ <equal name="name" value="value">value</equal> ~~~ 也可以支持和else标签混合使用: ~~~ <eq name="name" value="value"> 相等 <else/> 不相等 </eq> ~~~ 当 name变量的值大于5就输出 ~~~ <gt name="name" value="5">value</gt> ~~~ 当name变量的值不小于5就输出 ~~~ <egt name="name" value="5">value</egt> ~~~ 比较标签中的变量可以支持对象的属性或者数组,甚至可以是系统变量,例如: 当vo对象的属性(或者数组,或者自动判断)等于5就输出 ~~~ <eq name="vo.name" value="5"> {$vo.name} </eq> ~~~ 当vo对象的属性等于5就输出 ~~~ <eq name="vo:name" value="5"> {$vo.name} </eq> ~~~ 当$vo['name']等于5就输出 ~~~ <eq name="vo['name']" value="5"> {$vo.name} </eq> ~~~ 而且还可以支持对变量使用函数 当vo对象的属性值的字符串长度等于5就输出 ~~~ <eq name="vo:name|strlen" value="5">{$vo.name}</eq> ~~~ 变量名可以支持系统变量的方式,例如: ~~~ <eq name="Think.get.name" value="value">相等<else/>不相等</eq> ~~~ 通常比较标签的值是一个字符串或者数字,如果需要使用变量,只需要在前面添加“$”标志: 当vo对象的属性等于$a就输出 ~~~ <eq name="vo:name" value="$a">{$vo.name}</eq> ~~~ 所有的比较标签可以统一使用compare标签(其实所有的比较标签都是compare标签的别名),例如: 当name变量的值等于5就输出 ~~~ <compare name="name" value="5" type="eq">value</compare> ~~~ 等效于 ~~~ <eq name="name" value="5" >value</eq> ~~~ 其中type属性的值就是上面列出的比较标签名称