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:布尔值,当前循环是否是最后一个


相关文章
|
数据可视化 Linux
Linux centos7.x系统 下没有ens33 网卡的解决方案
此时还没有enp0s31f6网卡相关的配置信息 , 所以我们需要配置enp0s31f6网卡相关的信息
1653 0
|
Java 数据库连接 Spring
Spring之数据校验:Validation
【1月更文挑战第17天】 一、Spring Validation概述 二、实验一:通过Validator接口实现 三、实验二:Bean Validation注解实现 四、实验三:基于方法实现校验 五、实验四:实现自定义校验
607 2
Spring之数据校验:Validation
|
架构师 测试技术 Linux
嵌入式软件架构中抽象层设计方法
嵌入式软件架构中抽象层设计方法
455 0
|
11月前
|
存储 文件存储 数据库
在飞牛 NAS 上部署宝塔面板
飞牛NAS成为家庭私有云热门选择,通过部署宝塔面板,用户可以轻松搭建网站及各类Web应用,如相册、笔记、影视库等。本文介绍如何在飞牛NAS上安装宝塔面板,实现快速配置网站、数据库等服务,特别适合新手操作。
1706 5
在飞牛 NAS 上部署宝塔面板
|
存储 缓存 关系型数据库
如何优化大表的查询速度?
本文介绍了优化大数据表查询速度的方法。关键点包括:1) 创建索引以加快查询;2) 优化查询语句,避免全表扫描;3) 使用缓存来提高查询效率,利用内存访问速度快和IO操作少的优势;4) 提升硬件配置,如使用固态硬盘和增加内存;5) 数据归档和分离,减少主表数据量;6) 实施数据库分片,如分库分表技术,以分散数据并提高并发性能。分库分表包括只分库、只分表(横向和纵向)以及两者结合,常见的分库分表中间件有ShardingSphere、MyCAT、TDDL和Vitess。这些策略通常结合使用,以应对大数据量查询的挑战。
910 1
|
SQL 存储 关系型数据库
MySQL能否查询某张表的操作记录
MySQL能否查询某张表的操作记录
2182 1
|
编译器 Android开发 开发者
带你了解Android Jetpack库中的依赖注入框架:Hilt
本文介绍了Hilt,这是Google为Android开发的依赖注入框架,基于Dagger构建,旨在简化依赖注入过程。Hilt通过自动化的组件和注解减少了DI的样板代码,提高了应用的可测试性和可维护性。文章详细讲解了Hilt的主要概念、基本用法及原理,帮助开发者更好地理解和应用Hilt。
534 8
|
API Android开发 开发者
Android经典实战之使用ViewCompat来处理View兼容性问题
本文介绍Android中的`ViewCompat`工具类,它是AndroidX库核心部分的重要兼容性组件,确保在不同Android版本间处理视图的一致性。文章列举了设置透明度、旋转、缩放、平移等功能,并提供了背景色、动画及用户交互等实用示例。通过`ViewCompat`,开发者可轻松实现跨版本视图操作,增强应用兼容性。
451 5
|
API Android开发 Kotlin
kotlin 音频播放,多音轨同时播放,音频播放期间,可以随时设置播放速度
在Android中,`SoundPool` 适合播放短音频但不支持直接改变播放速度。若需调整播放速度,可使用 `AudioTrack` 或 `MediaPlayer`。以下是一个使用 `MediaPlayer` 实现多音轨播放并调整播放速度的简单Kotlin代码示例,特别注意,`setPlaybackParams` 方法在API 23及以上版本才能调整播放速度。别忘了在不再使用时释放 `MediaPlayer` 资源以防止内存泄漏。
|
存储 数据采集 监控
从存储统一到数据融合,SLS在可观测场景的思考和行动
介绍SLS在可观测数据融合分析的一系列技术升级,融合Trace、全栈监控、Continuous Profiling、移动端监控等功能,帮助大家更快速地构筑全栈、自动化的观测能力。
128502 52