Velocity #if/#else指令
2016-07-09 15:07
836 查看
#If指令的demo:
#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的区别。
#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的区别。
相关文章推荐
- 如何在 LibreOffice 中创建模板以实现省时高效
- 设计模式之行为型模式 - 调用行为的传递问题
- [div+css]晒晒最新制作专题推广页模板
- 2008大学生入党申请书 模板
- IMAIL多语言模板两套Outlook&Gmail模板下载
- 在PHP中使用模板的方法
- 深入解析php模板技术原理【一】
- Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
- 在ASP中不用模板生成HTML静态页直接生成.html页面
- 基于HTML模板和JSON数据的JavaScript交互(移动端)
- C#模板方法模式(Template Method Pattern)实例教程
- javascript文本模板用法实例
- shell 基本计算、逻辑运算、位运算详解
- 关于Asp代码与页面的分离模板技术第1/3页
- php模板原理讲解
- 需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
- DataGrid 动态添加模板列 实现代码
- html文件中jquery与velocity变量中的$冲突的解决方法
- Java位运算和逻辑运算的区别实例
- 详解java模板和回调机制