Thymeleaf教程(二)——判别和循环

分类:SpringBoot
作者:ZhouJianGuo
发布时间:2019年10月17日 20:53:43

  Thymeleaf最基本的取值操作,网络上很多教程,我就不予以重复介绍了,本文主要介绍Thymeleaf的高级操作:判别和循环

1.判别

  判别就是对布尔值进行判别,用于决定是否渲染模块,可能需要和迭代搭配使用,可以实现当list大小为0时,输出默认模块。其用法共有三种,下面分开讲一下。

 if

<div th:if="${boolean}">
  <span>输出内容</span>
</div>

    需要注意的是,if会判别双引号内的值,如果为true,则输出模块,里面的值可以使后台传来的boolean值,也可以是Thymeleaf表达式的值

<div th:if="${name} eq 'Tom'">
  <span>输出内容</span>
</div>

Thymeleaf表达式不限于eq,只要是能传回boolean值即可。

unless

<div th:unless="${boolean}">
  <span>输出内容</span>
</div>

    unless的实现效果是和if相反的,但是用法一致,就不多阐述了。

switch

<div th:switch="${name}">
  <p th:case="'Tom'">Tom</p>
  <p th:case="*">default</p>
</div>

    switch语句实现了多重情况的判别,每一种情况都需要使用case修饰,注意默认是case+内容为*,而不是default

2.循环

  Thymeleaf支持对List类的迭代操作,此操作的主要目的就是实现多个模块的渲染,只需要写出其中一个渲染模块模板,Thymeleaf就可以按照模板,把List的数据迭代渲染出来,用法如下:

<div th:each="item:${list}">
  <span th:text="${item.name}"></span>
</div>

  如果我们需要取出渲染模块的索引(迭代索引,好比一个循环中的自增变量)、索引奇偶判别以及迭代总次数等数据,则可以取出渲染迭代器,语法如下

<div th:each="item,state:${list}">
  <span th:text="${item.name}+${state.index}"></span>
</div>

  需要在我们命名的迭代变量后添加一个迭代器名称,示例代码中的state就是list对应的迭代器,可以取出迭代器的属性,可获得的属性如下

index :当前节点的索引,从0开始

size : 迭代节点总数

even/odd:当前是偶数/奇数行,boolean值

first/last:当前是每天/最后一个元素

  以上迭代器属性可能需要搭配Thymeleaf判别实现高级渲染。

3.总结

  以上就是Thymeleaf判别和迭代的用法,实际渲染中,可能会出现迭代和判别混合使用的情况,逻辑关系会变得复杂,但只要构思清楚标签的层次关系以及各类修饰符的基本含义,就不会复杂了,例如if、unless,决定是否打印整个标签,可用于单位模块上;each用于单位标签上,决定迭代整个标签,迭代器可以用来进行筛选,既可以用在标签的子标签上,也可以用在母标签上;switch则是用在母标签上,判别需要打印哪一个子标签;case则用在子标签上,用于标识自己。

版权声明:本站所有文章除特别声明外,转载请注明出处!
本文最后修改于:2019-11-14 20:32:18
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

发表评论
请先登录后再发表评论~
评论 共0条

当前日志还没有评论,赶紧成为第一个评论者吧!
{{articleCommentItem.username}}
评论于 {{articleCommentItem.createBy}}
{{articleCommentItem.content}}
{{replyItem.username}}
回复于 {{replyItem.createBy}}
@{{replyItem.targetUsername}} {{replyItem.content}}

@CopyRight 2019 ZhouJianGuo版权所有
苏ICP备19061991号