Как создать подсписок из 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