VELOCITY 數組操作

來源:互聯網
上載者:User

標籤:

常用方法:

$myarray.isEmpty()數組是否為空白
$myarray.size()擷取數組元素個數
$myarray.get(2)擷取數組指定下標的元素
$myarray.add()增加元素

數組 & 訪問

Velocity 訪問數組對象,無法通過類似 arr[2] 來訪問特定位置的元素。

#set($arr = [0, 1, 2, 3])
$arr.get(2)
註:Velocity 中的數組對應 Java 中的 List 對象。對於 Java 原生 Array 對象, 只能夠 #foreach 進行遍曆,無法使用 $arr[0] 和 $arr.get(0) 方法。

範圍(range)
#foreach($item in [10..20])
$item
#end
對象 & 訪問
#set($obj = {“key”:”value”, “name”:”space”})
$obj.get(“key”)

#foreach(#item in $obj)
$item
#end
上面的 $item 取到的是 values,如果需要在遍曆對象過程中,同時取到對象的 keys, 可以使用 entrySet() 或 keySet() 方法。

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

#foreach($item in $obj.keySet())
$item : $obj.get($item)
#end
註: 這種集合的遍曆是無序的,即遍曆順序可能不同於 $obj 中元素的定義順序 (據目前所知,是根據鍵的字母排序的)。

另外有兩種不完美解決方案:

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,本可以直接

$obj.get(“key”)
現在只能遍曆並進行比較取得,而且較早的 Velocity 版本無法使用 #break, 以便在找到匹配項之後立即退出迴圈。

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

更多資料內容可參看:

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


VELOCITY 數組操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.