zoukankan      html  css  js  c++  java
  • 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>

    结果如下所示:

  • 相关阅读:
    远程阿里云window服务器报错身份验证错误
    Windows下node.js安装及环境配置
    Dubbo是什么
    tomcat启动dubbo报IO异常
    java实现读取ftp服务器上的csv文件
    JavaMail 接收邮件及删除
    SpringApplicationConfiguration 这个不能用 解决方案
    为什么Spring Boot推荐使用logback-spring.xml来替代logback.xml来配置logback日志的问题分析
    springboot securyt 默认的用户名和密码
    springboot h2数据库的配置
  • 原文地址:https://www.cnblogs.com/feichangnice/p/10168815.html
Copyright © 2011-2022 走看看