1. Обзор
Thymeleaf — это шаблонизатор Java для обработки и создания HTML.
В этом кратком руководстве мы рассмотрим служебный объект списков
Thymeleaf для выполнения общих операций на основе списков.
2. Вычисление размера
Во- первых, метод size
возвращает длину списка. Мы можем включить его, скажем, через атрибут th:text :
size: <span th:text="${#lists.size(myList)}"/>
myList
— это наш собственный объект. Мы бы передали его через контроллер :
@GetMapping("/size")
public String usingSize(Model model) {
model.addAttribute("myList", getColors());
return "lists/size";
}
3. Проверка, пуст ли список
Метод isEmpty
возвращает true , если в данном списке нет элементов:
<span th:text="${#lists.isEmpty(myList)}"/>
Как правило, этот служебный метод используется с условными выражениями — th:if
и th:unless
:
<span th:unless="${#lists.isEmpty(myList)}">List is not empty</span>
4. Проверка членства
Метод contains
проверяет , является ли элемент членом данного списка:
myList contains red: <span th:text="${#lists.contains(myList, 'red')}"/>
Точно так же мы можем проверить принадлежность нескольких элементов, используя метод containsAll
:
myList contains red and green: <span th:text='${#lists.containsAll(myList, {"red", "green"})}'/>
5. Сортировка
Метод sort
позволяет нам сортировать список:
sort: <span th:text="${#lists.sort(myList)}"/>
sort with Comparator: <span th:text="${#lists.sort(myList, reverse)}"/>
Здесь у нас есть два перегруженных метода сортировки
.
Во-первых, мы сортируем наш список в естественном порядке — ${#lists.sort(myList)}.
Во-вторых, мы передаем дополнительный параметр типа Comparator
. В нашем примере мы получаем этот компаратор из модели.
6. Преобразование в список
Наконец, мы можем преобразовать Iterable
и массивы в List
с помощью метода toList
.
<span th:with="convertedList=${#lists.toList(myArray)}">
converted list size: <span th:text="${#lists.size(convertedList)}"/>
</span>
Здесь мы создаем новый List
, convertList
, а затем печатаем его размер с помощью # lists.size.
7. Резюме
В этом руководстве мы исследовали служебный объект встроенных списков
Thymeleaf и способы его эффективного использования.
Как всегда, исходный код всех примеров доступен на GitHub .