thymeleaf(4) - 条件判断

官方文档:https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#conditional-evaluation

 

以下是翻译的官方文档,建议自己阅读下文档。

1. 简单条件:if和unless

有时候,我们需要仅仅在满足一定条件才显示代码片段。例如,在产品表格列中,当产品有评论信息的时候添加一个链接用于查看评论详情,这时候我们就可以使用th:if属性。

<table>
  <tr>
    <th>名称</th>
    <th>价格</th>
    <th>现货</th>
    <th>评论</th>
  </tr>
  <tr th:each="prod : ${prods}" th:class="${prodStat.odd}? 'odd'">
    <td th:text="${prod.name}">洋葱</td>
    <td th:text="${prod.price}">2.41</td>
    <td th:text="${prod.inStock}? '是' : '否'">是</td>
    <td>
      <span th:text="${#lists.size(prod.comments)}">2</span> 评论
      <a href="comments.html" 
         th:href="@{/product/comments(prodId=${prod.id})}" 
         th:if="${not #lists.isEmpty(prod.comments)}">查看</a>
    </td>
  </tr>
</table>

当产品评论信息不为空时,才会添加<a>标签。

提示:

th:if属性bu不仅判断boolean条件,它的作用不局限于这些,它会根据以下的规则判定指定的表达式为true:

  • 值不为null
    • 值为boolean且是true
    • 值是数字且非0
    • 值是字符且非0
    • 值是字符串且非false、off、no
    • 值不是boolean、数字、字符、字符串
  • 值为null:判断为false

此外,th:if有一个相对应的属性th:unless,我们可以在之前例子中使用,而不是使用OGNL表达式的not:

<a href="comments.html"
   th:href="@{/comments(prodId=${prod.id})}" 
   th:unless="${#lists.isEmpty(prod.comments)}">查看</a>

 

2. switch语句

我们可以通过switch语句有条件的展示内容,类似于java中的语法:th:switch/th:case属性集

示例:

<div th:switch="${user.role}">
  <p th:case="'admin'">管理员</p>
  <p th:case="${roles.manager}">管理者</p>
</div>

提示:

一旦th:case属性判断为true,那么在同一个switch上下文中的其他th:case将会判断为false。

默认选项应当被指定为:th:case="*"

<div th:switch="${user.role}">
  <p th:case="'admin'">管理员</p>
  <p th:case="${roles.manager}">管理者</p>
  <p th:case="*">未知角色</p>
</div>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值