Thymeleaf循环详解

Thymeleaf是一款服务器端的Java模板引擎,适用于Web和独立环境。它的设计着重于开发的高效性和可读性。循环是Thymeleaf中最常用的功能之一,它使得在模板中表现数据变得更加简单和直观。本篇文章将从多个方面介绍Thymeleaf循环的使用。

一、List的循环

循环List是Thymeleaf中最常用和基础的循环之一,它能够快速地遍历List中所有元素,并将每个元素展示在模板中。下面是List循环的代码示例:

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Age</th>
      <th>Phone</th>
    </tr>
  </thead>
  <tbody>
    <tr th:each="person : ${people}">
      <td th:text="${person.name}">Name</td>
      <td th:text="${person.age}">Age</td>
      <td th:text="${person.phone}">Phone</td>
    </tr>
  </tbody>
</table>

在上述代码中,我们使用了th:each指令来循环遍历people这个List。而在循环体中,使用th:text指令将person对象中的name、age和phone属性输出到HTML表格中对应的单元格中。

二、数组的循环

除了List以外,数组也是Thymeleaf中常用的循环对象。它的使用方式与List类似,下面是数组循环的代码示例:

<div th:each="num : ${numbers}">
  <span th:text="${num}">1</span>
</div>

与List循环不同的是,数组循环中的变量需要使用“:”符号,如“num : ${numbers}”中的“num”就是循环体中的变量。同时,循环体中需要使用th:text指令将数组元素输出到HTML中。

三、循环语法

Thymeleaf的循环语法比较简单,只需要使用th:each指令即可完成循环。该指令的语法如下:

th:each="item : ${list}"

其中,“item”是循环体中的变量名,“${list}”是要循环遍历的对象。当多重循环时,可以添加多个th:each指令,如:

<div th:each="group : ${groups}">
  <h2 th:text="${group.name}">Group</h2>
  <ul>
    <li th:each="person : ${group.people}">
      <span th:text="${person.name}">Name</span>,
      <span th:text="${person.age}">Age</span>,
      <span th:text="${person.phone}">Phone</span>
    </li>
  </ul>
</div>

上述代码中,我们展示了如何在模板中进行多重循环。我们首先使用th:each指令遍历groups,接着在循环体中使用th:each指令遍历group对象中的people。最后,将人员信息输出到HTML中。

四、遍历序号

在一些场景下,可能需要在循环过程中累加计数。Thymeleaf提供了th:each指令中的“index”和“count”变量,用于记录当前元素的位置和累加的计数。下面是如何使用这两个变量的代码示例:

<div th:each="person, index : ${people}">
  <p th:text="${index.count}+'-'+${person.name}">1 - John Smith</p>
</div>

在上述代码中,我们使用“index.count”和“index.index”分别表示当前元素的累计数量和位置。同时,我们结合使用th:text指令输出当前元素的位置和name属性。

五、遍历次数

在一些场景下,可能需要在循环结束后统计出循环的次数。Thymeleaf提供了th:count指令来实现该功能。该指令的语法如下:

th:count="${{datas.list.size()}}"

其中,“${{datas.list.size()}}”表示需要统计的循环次数。使用该指令时,需要开启thymeleaf的“thymeleaf-extras-java8time”扩展包。下面是使用th:count指令的代码示例:

<div th:each="person : ${people}">
  <p th:text="${person.name}" th:count="${{people.size()}}">John Smith</p>
</div>

在上述代码中,我们使用th:count指令将循环的次数统计出来,并使用th:text指令输出了person对象中的name属性。

六、无序列表的遍历

除了在表格中展示数据外,循环可能在其他场景下也是很有用的。下面是如何使用Thymeleaf循环遍历无序列表的代码示例:

<ul>
  <li th:each="item : ${items}">
    <span th:text="${item}">List Item</span>
  </li>
</ul>

在上述代码中,我们使用th:each指令遍历items,并在循环体中将每个元素都展示为一个列表项。

七、循环生成指定的标签

循环不仅可以用来展示数据,还可以用来生成HTML标签。下面是如何使用Thymeleaf循环来生成指定标签的代码示例:

<th:block th:each="i : ${#numbers.sequence(1,5)}">
   <th:block th:text="${i}" th:tag="${'h'+i}">1</th:block>
</th:block>

在上述代码中,我们使用th:each指令遍历1-5的数值,并结合th:text和th:tag指令生成了h1-h5标签。

八、使用Map进行循环

除了List和数组,Thymeleaf中还支持使用Map进行循环。下面是如何使用Map进行循环的代码示例:

<ul>
  <li th:each="value : ${map}">
    <span th:text="${value.key}">Key</span>:
    <span th:text="${value.value}">Value</span>
  </li>
</ul>

在上述代码中,我们使用th:each指令遍历map,并使用th:text指令将key和value输出到HTML中。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/156705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-18 01:57
下一篇 2024-11-18 01:57

相关推荐

  • 使用Thymeleaf动态渲染下拉框

    本文将从下面几个方面,详细阐述如何使用Thymeleaf动态渲染下拉框: 一、Thymeleaf是什么 Thymeleaf是一款Java模板引擎,可用于Web和非Web环境中的应用…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25

发表回复

登录后才能评论