2017-10-14 72 views
0

我是apache速度的新手,我想從列表對象中創建一個來自某些服務調用的.vm文件中的子列表對象。如何在Apache速度模板中創建列表<Object>的子列表.vm

我們需要根據部分邏輯渲染列表,因爲我們希望從列表創建子列表。

$ table.getBooks()//包含所有Books對象 下面是我嘗試過的示例代碼,但它不起作用。

#set($segregatedList = []) 
#set($size = $table.getLineItems().size()) 
#foreach($index in [0..$size-1]) 
#set($value = $index + 4) 
#set($minimum = $math.min($nItems,$value)) 
$segregatedList.add($table.getBooks().subList($index,$minimum))) 
$index += 4 
#end 

我執行了代碼,同時呈現$ segregatedList爲空。 我驗證$ table.getBooks()包含對象,當我通過這個時,對象得到成功呈現。 有人可以告訴我做錯了什麼或如何創建一個子列表?

回答

0

首先,你是有4個增量指標,並可能導致IndexOutOfBoundsException異常,因此需要使用改變,直到size-5(因此除去數學最低入住)

二要添加單個元素,而不是所有元素的addAll

第三你的尺寸檢查,如果在錯誤的參數 - 應該是對相關$table.getBooks()

而且最後請確保您的列表有超過5個元素

#set($segregatedList = []) 
#set($size = $table.getBooks().size()) 
#foreach($index in [0..$size-5]) 
#set($value = $index + 4)  
$segregatedList.addAll($table.getBooks().subList($index, $value))) 
$index += 4 
#end