VELOCITY 数组操做

经常使用方法:

$myarray.isEmpty()数组是否为空
$myarray.size()获取数组元素个数
$myarray.get(2)获取数组指定下标的元素
$myarray.add()增长元素html

数组 & 访问

Velocity 访问数组对象,没法经过相似 arr[2] 来访问特定位置的元素。数组

#set($arr = [0, 1, 2, 3])
$arr.get(2)
注:Velocity 中的数组对应 Java 中的 List 对象。对于 Java 原生 Array 对象, 只可以 #foreach 进行遍历,没法使用 $arr[0] 和 $arr.get(0) 方法。spa

范围(range)
#foreach($item in [10..20])
$item
#end
对象 & 访问
#set($obj = {“key”:”value”, “name”:”space”})
$obj.get(“key”)orm

#foreach(#item in $obj)
$item
#end
上面的 $item 取到的是 values,若是须要在遍历对象过程当中,同时取到对象的 keys, 可使用 entrySet() 或 keySet() 方法。htm

#foreach($item in $!obj.entrySet())
$!item.key : $!item.value
#end对象

#foreach($item in $obj.keySet())
$item : $obj.get($item)
#end
注: 这种集合的遍历是无序的,即遍历顺序可能不一样于 $obj 中元素的定义顺序 (据目前所知,是根据键的字母排序的)。排序

另外有两种不完美解决方法:ci

I:
#set($obj = [
{“key”:”key”, “value”:”value”},
{“key”:”name”, “value”:”space”}
])
#foreach($item in $obj)
$item.key : $item.value
#end
II:
#set($obj = [
[“key”,”value”],
[“name”,”space”]
])
#foreach($item in $obj)
$item.get(0) : $item.get(1)
#end
之因此说 不完美 是由于:对于已知的 key,本能够直接get

$obj.get(“key”)
如今只能遍历并进行比较取得,并且较早的 Velocity 版本没法使用 #break, 以便在找到匹配项以后当即退出循环。it

#foreach($item in $obj)
#if(“key” == $!obj.get(0))
#set($myKey = $!type.get(1))
##break
#end
#end

更多资料内容可参看:

http://wiki.hotoo.me/Velocity-Notes.htmlhttp://wiki.hotoo.me/Velocity.html