当前位置: 首页 > wzjs >正文

专业做网站的团队推荐衡东网页设计

专业做网站的团队推荐,衡东网页设计,投资网站实名认证可以做吗,手机怎么搭建网站源码关键词:Thymeleaf、流程控制、th:if、th:switch、th:each、迭代、状态对象、Spring Boot 模板引擎 ✅ 引言 在使用 Thymeleaf 构建动态 HTML 页面时,流程控制 和 迭代 是两个非常核心的功能。Thymeleaf 提供了丰富的属性来支持条件判断(如 t…

关键词:Thymeleaf、流程控制、th:if、th:switch、th:each、迭代、状态对象、Spring Boot 模板引擎


✅ 引言

在使用 Thymeleaf 构建动态 HTML 页面时,流程控制迭代 是两个非常核心的功能。Thymeleaf 提供了丰富的属性来支持条件判断(如 th:ifth:unlessth:switch)和循环遍历(如 th:each),可以让你根据后端数据动态渲染页面内容。

本文将围绕 Thymeleaf 的流程控制与迭代机制 进行系统讲解,并为每个小节提供完整的 HTML 页面 + Spring Boot 后端 Java 示例代码,帮助你掌握 Thymeleaf 在真实项目中的高级用法。


📌 一、条件判断:th:ifth:unless

1.1 th:if:条件为真时渲染

<p th:if="${user.isAdmin}">您是管理员</p>
<p th:if="${user.role == 'guest'}">您是访客</p>

Java 后端示例:

model.addAttribute("user", new User("张三", 28, "admin", true));

📌 输出结果(当 isAdmin == true):

您是管理员

1.2 th:unless:条件为假时渲染

<p th:unless="${user.isAdmin}">您不是管理员</p>

📌 输出结果(当 isAdmin == false):

您不是管理员

📌 二、多条件判断:th:switchth:case

2.1 使用 th:switch 实现多分支判断

<div th:switch="${user.role}"><p th:case="'admin'">您是管理员</p><p th:case="'editor'">您是编辑人员</p><p th:case="*">未知角色</p>
</div>

📌 示例输出(当 user.role == "admin"):

您是管理员

📌 示例输出(当 user.role == "guest"):

未知角色

📌 三、循环遍历:th:each 详解

3.1 基本用法

<ul><li th:each="fruit : ${fruits}" th:text="${fruit}"></li>
</ul>

Java 后端示例:

model.addAttribute("fruits", Arrays.asList("苹果", "香蕉", "橙子"));

📌 输出 HTML:

<ul><li>苹果</li><li>香蕉</li><li>橙子</li>
</ul>

3.2 获取循环状态对象:th:each 状态变量

Thymeleaf 提供了一个内置的状态对象 stat,可用于获取索引、是否为第一个/最后一个元素等。

<ol><li th:each="fruit, stat : ${fruits}"><span th:text="${stat.index + 1}"></span> 个水果:<b th:text="${fruit}"></b><span th:if="${stat.odd}">(奇数位)</span><span th:if="${stat.even}">(偶数位)</span></li>
</ol>

📌 输出 HTML:

第 1 个水果:苹果(奇数位)
第 2 个水果:香蕉(偶数位)
第 3 个水果:橙子(奇数位)

📌 四、嵌套循环与多级数据结构处理

4.1 嵌套 th:each 遍历二维数据

Map<String, List<String>> categories = new HashMap<>();
categories.put("水果", Arrays.asList("苹果", "香蕉", "橙子"));
categories.put("蔬菜", Arrays.asList("西红柿", "黄瓜", "胡萝卜"));
model.addAttribute("categories", categories);

HTML 模板:

<div th:each="entry : ${categories}"><h3 th:text="${entry.key}"></h3><ul><li th:each="item : ${entry.value}" th:text="${item}"></li></ul>
</div>

📌 输出 HTML:

<h3>水果</h3>
<ul><li>苹果</li><li>香蕉</li><li>橙子</li>
</ul><h3>蔬菜</h3>
<ul><li>西红柿</li><li>黄瓜</li><li>胡萝卜</li>
</ul>

📌 五、结合条件判断与循环实现复杂逻辑

5.1 示例:遍历用户列表并根据角色高亮显示

List<User> users = Arrays.asList(new User("张三", 25, "admin", true),new User("李四", 28, "editor", false),new User("王五", 30, "guest", false)
);
model.addAttribute("users", users);

HTML 模板:

<table border="1"><tr th:each="user, stat : ${users}"th:class="${user.isAdmin}? 'admin-row' : (${stat.odd}? 'odd-row' : 'even-row')"><td th:text="${user.name}"></td><td th:text="${user.role}"></td></tr>
</table>

CSS 示例:

.admin-row { background-color: #ffeb3b; }
.odd-row { background-color: #f0f0f0; }
.even-row { background-color: #ffffff; }

📌 输出效果:

  • 张三行高亮为黄色(管理员)
  • 李四行为灰色(奇数)
  • 王五行为白色(偶数)

📌 六、流程控制与迭代的注意事项

项目说明
表达式语法使用 ${} 表示变量、*{} 表示对象内部字段
状态变量stat 是自动提供的,可获取索引、奇偶、是否为第一个/最后一个
空值处理使用 th:if="${!#strings.isEmpty(name)}" 避免空指针
逻辑运算支持 andornoteqneqgtlt
性能优化尽量避免在模板中进行复杂逻辑处理,交由后端处理

✅ 总结

功能属性用途
条件判断th:if, th:unless控制是否渲染某块内容
多条件判断th:switch, th:case多分支选择
循环遍历th:each遍历集合
状态对象stat获取索引、奇偶等信息
嵌套循环多层 th:each处理复杂结构数据
样式绑定th:class根据逻辑动态设置样式

📚 推荐阅读

  • Thymeleaf 官方文档 - Iteration
  • Spring Boot + Thymeleaf 实战教程
  • Thymeleaf 中文文档

文章转载自:

http://NrfyXDNV.Lsnhs.cn
http://RLLQlfEA.Lsnhs.cn
http://0kZnFaBW.Lsnhs.cn
http://S7YNl5bs.Lsnhs.cn
http://wOwrRx00.Lsnhs.cn
http://D94R2BU5.Lsnhs.cn
http://ehmAn7je.Lsnhs.cn
http://tbmNFz1u.Lsnhs.cn
http://pHfrDvUF.Lsnhs.cn
http://MD1it6ep.Lsnhs.cn
http://rPHG4x47.Lsnhs.cn
http://KzYtYRDt.Lsnhs.cn
http://tVntZkxZ.Lsnhs.cn
http://Fslkj7ba.Lsnhs.cn
http://1W5R3C8k.Lsnhs.cn
http://y2G66E1w.Lsnhs.cn
http://m3Vw4tPD.Lsnhs.cn
http://yqP3mVlx.Lsnhs.cn
http://WK25fy2F.Lsnhs.cn
http://mNMZeuxQ.Lsnhs.cn
http://iQNMFoyA.Lsnhs.cn
http://tbEQvEym.Lsnhs.cn
http://eYWODN17.Lsnhs.cn
http://PDB5eRCe.Lsnhs.cn
http://bLFuUDLg.Lsnhs.cn
http://dCtdGxkM.Lsnhs.cn
http://s52SIWRL.Lsnhs.cn
http://drA8H9jn.Lsnhs.cn
http://JS0gmy9H.Lsnhs.cn
http://0x7pX8bs.Lsnhs.cn
http://www.dtcms.com/wzjs/704285.html

相关文章:

  • 泉州网站设计理念培训ui设计培训有哪些课程
  • 个人简历模板免费网站网络传媒公司怎么注册
  • 网站静态页面生成怎么做高端品牌网站设计
  • php 企业网站系统下载网站建设合同应注意
  • 镇江智能网站建设哪家好中山网站建设找阿 n 2
  • 法语网站建站公司网页广告太多怎么办
  • 免费网站源码保险咨询免费
  • 广州网站建设公司万齐网络科技做业务在那几个网站上找客户端
  • 优秀手机网站案例企业网站的建设思维导图
  • 滁州建设网站深圳企业网站备案
  • 建设银行 产品管理中心网站google搜索引擎入口下载
  • 网线水晶头接法图解淄博seo网络推广
  • iis 网站绑定域名开发公司都有什么部门
  • 建网站手机怎么做wordpress手机投稿
  • 黄岛建网站成全视频在线观看高清版
  • 电商网站有哪些官网济南企业型网站
  • 西安市城乡建设管理局网站6企业网站建设方案撰写
  • 免费ps素材图片大全google seo
  • 合肥网站建设网页设计漳州本地新闻头条
  • 济南做网站互联网公司排名空调seo是什么意思
  • 门户网站建设的作用及意义网站更换ip地址
  • 厦门微网站建设公司哪家好网页设计网站开发
  • 佛山网站推广软件公司的英文网站
  • 装修网站怎么做的好建设电影网站视频
  • 自助建站自己要做网站的来看下网站开发建设公司电话
  • 深圳网站设计clhngrok 群晖wordpress
  • h5手机网站建设是什么意思专门做包包的网站
  • 万维网域名注册网站曲阜网站建设哪家便宜
  • 南山专业做网站公司怀集建设房管部门网站
  • asp.net网站开发典型模块与实例精讲源码社区