Подтвердить что ты не робот

Как получить/получить размер массива/коллекции в шаблонах скорости?

Я использую скорость для шаблонов электронной почты в приложении java/spring 3.
Как я могу получить размер ArrayList, добавленный в модель из шаблона.

4b9b3361

Ответ 1

Я никогда не использовал Velocity, но его Справочник по VTL говорит, что вызов метода выполняется с помощью $customer.getAddress() или ${purchase.getTotal()}, Поэтому я бы использовал ${myArrayList.size()}.

Ответ 2

Доступ к коллекции возможен, как и любой другой объект, поэтому $collection.size() будет содержать значение.

Массивы специальные обрезанные, чтобы вести себя как List, поэтому, если $array.length не работает, $array.size() работает.

В более старых версиях Velocity (до 1.6) вы должны использовать ListTool и ArrayTool.

Ответ 3

Цитата из руководство разработчика:

Object [] Регулярный массив объектов, здесь не так много нужно сказать. Velocity будет внутренне переносить ваш массив в класс, который предоставляет интерфейс Iterator, но это не должно касаться вас как программиста или автора шаблона. Более интересен тот факт, что Velocity теперь позволит авторам шаблонов обрабатывать массивы в виде списков фиксированной длины (с Velocity 1.6). Это означает, что они могут вызывать такие методы, как size(), isEmpty() и get (int) для обоих массивов и стандартные экземпляры java.util.List, не касающиеся самих себя о различии.

Таким образом, использование size() одинаково хорошо работает на java.util.List и java-массивах.