1. 概述
Thymeleaf 是一个用于处理和生成 HTML 的 Java 模板引擎。
本文我们将重点介绍 Thymeleaf 提供的 lists 工具对象,它能帮助我们完成一些常见的列表操作。
2. 获取列表长度
✅ size
方法用于获取列表的长度。我们可以使用 th:text
属性来展示:
size: <span th:text="${#lists.size(myList)}"/>
其中 myList
是我们在 Controller 中传入的模型数据,例如:
@GetMapping("/size")
public String usingSize(Model model) {
model.addAttribute("myList", getColors());
return "lists/size";
}
3. 判断列表是否为空
✅ isEmpty
方法用于判断列表是否为空:
<span th:text="${#lists.isEmpty(myList)}"/>
这个方法常用于条件判断,比如配合 th:if
或 th:unless
使用:
<span th:unless="${#lists.isEmpty(myList)}">列表不为空</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)}"/>
- 第一种不带比较器,按自然顺序排序;
- 第二种接受一个
Comparator
参数,例如我们可以通过 model 传入一个倒序比较器reverse
。
6. 转换为 List
✅ toList
方法可以将 Iterable
或数组转换为 List
,非常实用:
<span th:with="convertedList=${#lists.toList(myArray)}">
converted list size: <span th:text="${#lists.size(convertedList)}"/>
</span>
上面代码中我们先将数组转为列表,再使用 #lists.size
获取其长度。
7. 总结
本文我们详细介绍了 Thymeleaf 中的 lists
工具对象,包括:
- 获取长度:
#lists.size
- 判断空:
#lists.isEmpty
- 元素检查:
#lists.contains
/#lists.containsAll
- 排序:
#lists.sort
- 类型转换:
#lists.toList
这些方法简单粗暴,能显著提升模板中处理列表的效率。
如需查看完整示例代码,请访问 GitHub 仓库。