Как создать подсписок из List<Object> в шаблоне скорости Apache.vm

Я новичок в скорости Apache, я хочу создать объект subList из списка объектов, которые поступают от некоторого вызова службы в файле.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() содержит Объекты, так как когда я передаю это, Объекты успешно визуализируются. Может кто-нибудь подсказать, пожалуйста, что я делаю неправильно или как мне создать подсписок?

1 ответ

Сначала вы увеличиваете индекс на 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
Другие вопросы по тегам