2017-10-14 73 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