Thymeleaf流程控制语法

if判断语句

如果if条件满足,则此标签留下,若if条件不满足,则此标签自动被移除

<div th:if="${eval}">我是判断条件标签</div>

 

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Context context = new Context();
    context.setVariable("eval", true);
    engine.process("test.html", context, resp.getWriter());
}

th:if`会根据其中传入的值或是条件表达式的结果进行判断,只有满足的情况下,才会显示此标签

- 如果值不是空的:

  - 如果值是布尔值并且为`true`。

  - 如果值是一个数字,并且是非零

  - 如果值是一个字符,并且是非零

  - 如果值是一个字符串,而不是“错误”、“关闭”或“否”

  - 如果值不是布尔值、数字、字符或字符串。

- 如果值为空,th:if将计算为false

`th:if`还有一个相反的属性`th:unless`,效果完全相反

多分支条件判断,可以使用`th:switch`属性来实现

<div th:switch="${eval}">
    <div th:case="1">我是1</div>
    <div th:case="2">我是2</div>
    <div th:case="3">我是3</div>
</div>

只不过没有default属性,但是可以使用`th:case="*"`来代替

<div th:case="*">我是Default</div>

可以使用`th:each`来进行遍历操作

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Context context = new Context();
    context.setVariable("list", Arrays.asList("伞兵一号的故事", "倒一杯卡布奇诺", "玩游戏要啸着玩", "十七张牌前的电脑屏幕"));
    engine.process("test.html", context, resp.getWriter());
}

 

<ul>
    <li th:each="title : ${list}" th:text="'《'+${title}+'》'"></li>
</ul>

`th:each`中需要填写 "单个元素名称 : ${列表}",这样,所有的列表项都可以使用遍历的单个元素,只要使用了`th:each`,都会被循环添加

获取当前循环的迭代状态,只需要在最后添加`iterStat`

<ul>
    <li th:each="title, iterStat : ${list}" th:text="${iterStat.index}+'.《'+${title}+'》'"></li>
</ul>

从中可以获取很多信息

- 当前*迭代索引*,以0开头。这是`index`属性。

- 当前*迭代索引*,以1开头。这是`count`属性。

- 迭代变量中的元素总量。这是`size`属性。

- 每个迭代的*迭代变量*。这是`current`属性。

- 当前迭代是偶数还是奇数。这些是`even/odd`布尔属性。

- 当前迭代是否是第一个迭代。这是`first`布尔属性。

- 当前迭代是否是最后一个迭代。这是`last`布尔属性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值