Thymeleaf 条件判断、迭代遍历

条件判断
th:if
进行判断处理
举个例子:

<p th:if="${user.getAge()} == '男'">
    性别:男
</p>

这里使用的是 ModelAndView 传递的 user 对象

th:switch 配合 th:case
用来分流处理
举个例子:

<div th:switch="${user.getAge()}">
    <p th:case="25">
        年龄:25
    </p>
</div>

迭代遍历
th:each =“i : array”
遍历对象,和 Java 中的 foreach
举个例子:前端的在下面

List<User> list = new ArrayList<>();
list.addAll(Arrays.asList(new User("aa", 23, "男"), 
    new User("bb", 22, "男"), new User("cc", 21, "男")));
modelAndView.addObject("users", list);

Thymeleaf 还为数组的对象提供了一个状态变量
th:each =“i, var : array”
逗号后面的就是状态变量,可以获取 index、count、size、even、odd、first、last
index 索引值
count 计数器
size 数组大小
even 是否是奇数位置
odd 是否是偶数位置
first 是否是第一个
last 是否是最后一个

举个例子:

<table border="1px">
    <tr>
        <th>Name</th>
        <th>Age</th>
        <th>Gender</th>
        <th>index</th>
        <th>count</th>
        <th>size</th>
        <th>even</th>
        <th>odd</th>
        <th>first</th>
        <th>last</th>
    </tr>
    <tr th:each="u, var : ${users}">
        <td th:text="${u.name}"></td>
        <td th:text="${u.age}"></td>
        <td th:text="${u.gender}"></td>

        <td th:text="${var.index}"></td>
        <td th:text="${var.count}"></td>
        <td th:text="${var.size}"></td>
        <td th:text="${var.even}"></td>
        <td th:text="${var.odd}"></td>
        <td th:text="${var.first}"></td>
        <td th:text="${var.last}"></td>
    </tr>
</table>

th:each 获取 map 中的值

Map<String, User> map = new HashMap<>();
map.put("u1",new User("aa", 23, "男"));
map.put("u2",new User("bb", 23, "男"));
map.put("u3",new User("cc", 23, "男"));
modelAndView.addObject("userMap", map);

th:each=“maps : ${userMap}”
th:each=“map : ${maps}” 是每行都有的

<table border="1px">
    <tr>
        <th>Key</th>
        <th>Name</th>
        <th>Age</th>
        <th>Gender</th>
    </tr>
    <tr th:each="maps : ${userMap}">
        <td th:each="map : ${maps}" th:text="${maps.key}"></td>
        <td th:each="map : ${maps}" th:text="${map.value.name}"></td>
        <td th:each="map : ${maps}" th:text="${map.value.age}"></td>
        <td th:each="map : ${maps}" th:text="${map.value.gender}"></td>
    </tr>
</table>

你可能感兴趣的:(Thymeleaf)