Velocity(6)——#if指令
下面是#If指令的一个简单而完整的示例:
#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的区别。
Velocity(6)——#if指令的更多相关文章
- Velocity(8)——引入指令和#Stop指令
#Include和#Parse都是用于将本地文件引入当前文件的指令,而且被引入的文件必须位于TEMPLATE_ROOT.这两者之间有一些区别. #Include 被#Include引入的文件,其内容不 ...
- Velocity(5)——#set指令
引用可以让模板设计者生成动态内容,而指令允许设计者真正的负责页面的展现和内容. 指令是以#开头,后面紧跟一个关键字,比如if,else,foreach等.而这个关键字,是可以被放在{}中间的.这是规范 ...
- Velocity中#set指令
引用可以让模板设计者生成动态内容,而指令允许设计者真正的负责页面的展现和内容. 指令是以#开头,后面紧跟一个关键字,比如if,else,foreach等.而这个关键字,是可以被放在{}中间的.这是规范 ...
- Velocity(4)——引入指令和#Parse 指令
#Include和#Parse都是用于将本地文件引入当前文件的指令,而且被引入的文件必须位于TEMPLATE_ROOT.这两者之间有一些区别. #Include 被#Include引入的文件,其内容不 ...
- Velocity(3)——#set指令
引用可以让模板设计者生成动态内容,而指令允许设计者真正的负责页面的展现和内容. 指令是以#开头,后面紧跟一个关键字,比如if,else,foreach等.而这个关键字,是可以被放在{}中间的.这是规范 ...
- Velocity(7)——#foreach指令
首先是#foreach的简单示例: #foreach( $elem in $allElems) $elem</br> #end 上面这个例子中,$allElems可以是一个Vector,一 ...
- Velocity(5)——#macro 指令
1 #macro(formatIncreaseData $increase) 2 #if(${product.onlineStatusFlag} =='0') 3 -- 4 #elseif(!$inc ...
- Velocity工作原理解析和优化
在MVC开发模式下,View离不开模板引擎,在Java语言中模板引擎使用得最多是JSP.Velocity和FreeMarker,在MVC编程开发模式中,必不可少的一个部分是V的部分.V负责前端的页面展 ...
- 《Apache Velocity用户指南》官方文档
http://ifeve.com/apache-velocity-dev/ <Apache Velocity用户指南>官方文档 原文链接 译文连接 译者:小村长 校对:方腾飞 Qui ...
随机推荐
- sublime text 3 的在文件夹中查找的快捷键没有反应 的bug冲突
11:19 2015/11/18 sublime text 3 的在文件夹中查找的快捷键没有反应 的bug冲突 在文件夹查找的快捷键:ctrl shift f没有反应,后来发现是百度输入法与它有问题, ...
- word-wrap和word-break的区别
最初只有word-wrap,当指定word-wrap: break-word;时将导致容器内的长单词换行且被切断. 后来IE发明了word-break:当应用word-break:break-all时 ...
- C语言break和continue
break和continue C语言中有有两种结束循环的关键字:break和continue #include <stdio.h> #include <stdlib.h> in ...
- 最长递增子序列 O(NlogN)算法
转自:点击打开链接 最长递增子序列,Longest Increasing Subsequence 下面我们简记为 LIS. 排序+LCS算法 以及 DP算法就忽略了,这两个太容易理解了. 假设存在一个 ...
- Java面向对象编程
面向对象的软件开发: 面向对象的开发把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成复杂的子系统. 面向对象的开发方法具有以下优点: 1.把软件系统看成是各种对象的集合,更 ...
- [LintCode] LRU Cache 缓存器
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the fol ...
- - dequeueReusableCellWithIdentifier:
与之对应的还有一个方法: - dequeueReusableCellWithIdentifier:forIndexPath: 1 > - dequeueReusableCellWithIdent ...
- ACM Steps 2.1.4
Largest prime factor Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- javascript保留关键字
1.通用保留关键字 break delete function return typeof case do if switch var catch else in this void continue ...
- modifiedvalues 主程序测试
##~ #-------------------------------------------------class InputFrame(wx.Frame):def __init__(self,t ...