Thymeleaf学习记录(6)--迭代及条件语法

迭代:

  • 条件选择:
    • IF-THEN: (if) ? (then)
    • IF-THEN-ELSE: (if) ? (then) : (else)
    • 默认: (value) ?: (defaultvalue)

所有这些功能都可以组合和嵌套

1.迭代:

后台Controller文件添加:

 1 @RequestMapping(value = "getUsers", method = RequestMethod.GET)
 2 public String getUsers(Model model) {
 3     User user = new  User();
 4     user.setName("Jack");
 5     user.setAge(12);
 6     User user1 = new  User();
 7     user1.setName("Tesla");
 8     user1.setAge(11);
 9     User user2 = new  User();
10     user2.setName("Ella");
11     user2.setAge(9);
12     List<User> users = new ArrayList<User>();
13     users.add(user);
14     users.add(user1);
15     users.add(user2);
16     model.addAttribute("users",users);
17     return "subscribe";
18 }

如下所示:

前台添加:

 1 <table>
 2     <tr>
 3         <th>NAME</th>
 4         <th>PRICE</th>
 5     </tr>
 6     <tr th:each="user : ${users}">
 7         <td th:text="${user.name}"></td>
 8         <td th:text="${user.age}"></td>
 9     </tr>
10 </table>

如下所示:

运行结果:

迭代的对象:

一组非常完整的对象被属性认为是可迭代th:each

  • 任何实现 java.util.Iterable的对象
  • 任何实现java.util.Map
  • 任何数组
  • 任何其他包含对象本身的单值列表的对象。

状态变量在th:each属性中定义,包含以下数据:

  • 当前迭代索引,从0开始。这是index属性。
  • 当前迭代索引,从1开始。这是count属性。
  • 迭代变量中元素的总量。这是size酒店。
  • 每次迭代的iter变量。这是current酒店。
  • 当前迭代是偶数还是奇数。这些是even/odd布尔属性。
  • 当前迭代是否是第一个迭代。这是first布尔属性。
  • 当前迭代是否是最后一次。这是last布尔属性。

如果您没有显式设置状态变量,Thymeleaf将始终通过后缀Stat为迭代变量的名称为您创建一个

例如:

前台添加如下代码:

 1 <table>
 2     <tr>
 3         <th>index</th>
 4         <th>name</th>
 5         <th>age</th>
 6         <th>>11?</th>
 7         <th>last?</th>
 8     </tr>
 9     <tr th:each="user : ${users}">
10         <td th:text="${userStat.index}"></td>
11         <td th:text="${user.name}"></td>
12         <td th:text="${user.age}>11?yes:no"></td>
13         <td th:text="最后一次+${userStat.last}?yes:no"></td>
14     </tr>
15 </table>

输入地址访问。结果如下:

2.判断与选择语句示例:

页面插入代码:

 1 <a th:if="1==1">view</a>
 2 <a th:if="1==2">view</a>
 3 
 4 <div th:each="user : ${users}">
 5     <div th:switch="${user.age}">
 6         <p th:case="11">User is an administrator</p>
 7         <p th:case="9">User is a manager</p>
 8         <p th:case="*">User is some other thing</p> 
 9         <p th:text="${user.name}+${user.age}"/>
10     </div>
11 </div>

结果如下所示:

原文地址:https://www.cnblogs.com/feichangnice/p/10168815.html