Velocity 基本使用
1,循环
#foreach($item in list)
$item.id
#end
2,If条件判断判断
#if()
#elseif()
#else
#end
3,变量定义
#set($str="hello")
#set( $result = ["Not", "非常好", "较好","好","较不好","非常不好"] )
#set($a=12)
4,Velocity怎么截取字符串的问题,字符串长度,是否包含某个元素
可以用str.substring(0,number)
#set($substr=$str.substring(0,$str.length()-1))
是否包含某个字串
$str.contains("2;")
5,直接按下标获取List中某条数据
$result .isEmpty() 数组是否为空
$result .size() 获取数组元素个数
$result .get(2) 获取数组指定下标的元素
$result .add() 增加元素
6,Velocity中分int和String吗,怎么转?
#set($intString = "9")
#set($Integer = 0)
$Integer.parseInt($intString)
注意一定要有#set($Integer = 0)定义,不然的话无法调用Integer中的方法;
7,获取foreach 循环下标:
$!{velocityCount}
8,Vm文件中导入别的文件 此部分源自http://www.voidcn.com/article/p-pbqenlwg-rq.html
#Include
被#Include引入的文件,其内容不会被Velocity引擎解析,所以这些文件应该是静态模板,即不含有VTL的模板。使用#Include()指令时,参数是被双引号括起来的文件名或者是表示文件名的变量。如果有多个文件,以逗号隔开即可。比如#Include("a.gif", "b.html", $file)。
#Parse
#Parse用来在当前模板中引入并执行另一个(本地的)模板——可以是静态的,也可以是动态的——并把结果嵌入到当前位置。#Parse()指令的参数,可以是一个双引号括起来的文件名,也可以是一个变量,但是它不能接受多个参数。
被#Parse引入的文件仍然可以使用#Parse指令。在velocity.properties文件中有一个属性directive.parse.max.depth,默认值是10,它指定了#Parse嵌套的最大层次。既然#Parse嵌套是允许的,#Parse递归也是允许的。
假如a.vm #Parse b.vm,那么a.vm中定义的变量$v,在b.vm中可以随便使用。如果b.vm也定义了$v,那么b.vm中用到的将会是自己的$v,而不是a.vm中的$v。