thymeleaf 的 th:each 标签示例

简介: thymeleaf 的 th:each 标签示例

控制层:


@Controller
public class ThirdThymeleafController {
    @GetMapping("/third")
    public String third(Model model) {
        String msg = "hello,thymeleaf";
        User user1 = new User(1, "张三", 23);
        User user2 = new User(2, "李四", 25);
        User user3 = new User(3, "王五", 27);
        List<User> list = new ArrayList<>();
        list.add(user1);
        list.add(user2);
        list.add(user3);
        model.addAttribute("msg", msg);
        model.addAttribute("userList", list);
        return "index3";
    }
}


注:会将数据返回给 /src/main/resources/templates/index3.html 页面中,该路径为默认路径。


页面

<tr>
        <td>编号</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>index</td>
        <td>count</td>
        <td>size</td>
        <td>current</td>
        <td>first</td>
        <td>last</td>
    </tr>
    <tr th:each="user,iterStat:${userList}">
        <td th:text="${user.id}"></td>
        <td th:text="${user.username}"></td>
        <td th:text="${user.age}"></td>
        <td th:text="${iterStat.index}">index</td>
        <td th:text="${iterStat.count}">count</td>
        <td th:text="${iterStat.size}">size</td>
        <td th:text="${iterStat.current}">current</td>
        <td th:text="${iterStat.first}">first</td>
        <td th:text="${iterStat.last}">last</td>
    </tr>


效果

20201109110219179.png


注:

iterStat 称作状态变量,属性有:

index:当前迭代对象的 index(从 0 开始计算)

count:当前迭代对象的 index(从 1 开始计算)

size:被迭代对象的大小

current:当前迭代变量

even/odd:布尔值,当前循环是否是偶数/奇数(从 0 开始计算)

first:布尔值,当前循环是否是第一个

last:布尔值,当前循环是否是最后一个


相关文章
|
Java 数据库连接 Spring
Spring之数据校验:Validation
【1月更文挑战第17天】 一、Spring Validation概述 二、实验一:通过Validator接口实现 三、实验二:Bean Validation注解实现 四、实验三:基于方法实现校验 五、实验四:实现自定义校验
488 2
Spring之数据校验:Validation
|
架构师 测试技术 Linux
嵌入式软件架构中抽象层设计方法
嵌入式软件架构中抽象层设计方法
380 0
|
9月前
|
存储 文件存储 数据库
在飞牛 NAS 上部署宝塔面板
飞牛NAS成为家庭私有云热门选择,通过部署宝塔面板,用户可以轻松搭建网站及各类Web应用,如相册、笔记、影视库等。本文介绍如何在飞牛NAS上安装宝塔面板,实现快速配置网站、数据库等服务,特别适合新手操作。
1419 5
在飞牛 NAS 上部署宝塔面板
|
存储 缓存 关系型数据库
如何优化大表的查询速度?
本文介绍了优化大数据表查询速度的方法。关键点包括:1) 创建索引以加快查询;2) 优化查询语句,避免全表扫描;3) 使用缓存来提高查询效率,利用内存访问速度快和IO操作少的优势;4) 提升硬件配置,如使用固态硬盘和增加内存;5) 数据归档和分离,减少主表数据量;6) 实施数据库分片,如分库分表技术,以分散数据并提高并发性能。分库分表包括只分库、只分表(横向和纵向)以及两者结合,常见的分库分表中间件有ShardingSphere、MyCAT、TDDL和Vitess。这些策略通常结合使用,以应对大数据量查询的挑战。
845 1
|
Android开发 容器
Android经典实战之如何获取View和ViewGroup的中心点
本文介绍了在Android中如何获取`View`和`ViewGroup`的中心点坐标,包括计算相对坐标和屏幕上的绝对坐标,并提供了示例代码。特别注意在视图未完成测量时可能出现的宽高为0的问题及解决方案。
174 7
|
存储 JSON JavaScript
震撼!Cookie、Session、Token、JWT 终极对决:揭开 Web 认证的神秘面纱!
【8月更文挑战第13天】Web 开发中,Cookie、Session、Token 和 JWT 常混淆。Cookie 是服务器给客户端的小信息片,如登录状态,每次请求都会返回。Session 则是服务器存储的用户数据,通过 Session ID 追踪。Token 类似通行证,证明客户端身份且可加密。JWT 是结构化的 Token,含头部、载荷及签名,确保数据完整性和安全性。
173 4
|
存储 Python
python基础篇:图解Python字典,一目了然的键值对数据结构!
【4月更文挑战第6天】python基础篇:图解Python字典,一目了然的键值对数据结构!
312 2
python基础篇:图解Python字典,一目了然的键值对数据结构!
|
存储 数据采集 监控
从存储统一到数据融合,SLS在可观测场景的思考和行动
介绍SLS在可观测数据融合分析的一系列技术升级,融合Trace、全栈监控、Continuous Profiling、移动端监控等功能,帮助大家更快速地构筑全栈、自动化的观测能力。
128369 52
|
Python
编写自己的Flask扩展:扩展框架的无限可能
【4月更文挑战第16天】本文介绍了如何编写Flask扩展以增强其功能。Flask扩展用于添加框架未内置的高级特性。一个扩展通常包括初始化函数、上下文处理器、命令行工具、信号处理和辅助函数。文中通过一个简单的自定义日志记录扩展示例,展示了创建扩展的步骤。扩展类`CustomLogger`包含初始化、请求前记录日志和自定义日志函数。通过`init_custom_logger`函数在应用中注册扩展。最后,展示了如何在应用中使用该扩展记录日志。编写Flask扩展可实现复杂逻辑、定制命令和处理事件,从而打造功能丰富的Web应用。
|
存储 数据可视化 关系型数据库
【nacos】本机电脑、服务器上如何安装配置nacos
【nacos】本机电脑、服务器上如何安装配置nacos
1795 1
【nacos】本机电脑、服务器上如何安装配置nacos