thymeleaf渲染
1-thymeleaf条件渲染
- 概述
使用th:if进行条件渲染
- 代码实现
@RequestMapping("/test01")
public String test01(Model model){model.addAttribute("flag1",true);model.addAttribute("flag2",false);return "demo01";
}
<a href="/toDemo02" th:if="${flag1}">超链接1</a>
<a href="/toDemo02" th:unless="${flag2}">超链接2</a>
<body><!--表达式的结果为布尔类型时,if 直接以它为结果--><p th:if="true">th:if="true"</p><!--当表达式结果为null时,则if判定为false--><p th:if="null">th:if="null"</p><!--表达式为数字时,不为0,if判定为true,为0,时,if判定为false--><p th:if="11">th:if="11"</p><p th:if="0">th:if="0"</p><!--表达式结果为字符串时,如果为 true,则if判定为true;值为 false,则if判定为false--><!--结果为 off、no 等特殊字符串时,if 判定为false--><p th:if="'true'">th:if="'true'"</p><p th:if="'false'">th:if="'false'"</p><p th:if="'off'">th:if="'off'"</p><p th:if="'no'">th:if="'no'"</p><!--表达式结果字符串不为false,off,no时,if判定为true--><p th:if="'Love China'">th:if="'Love China'"</p><!--后台传输:model.addAttribute("userList", User.getUsers());--><!--只要 userList 不等于null,则if判定为true,否则为false--><p th:if="${userList}">th:if="${userList}"</p><!--后台传输:model.addAttribute("name", "");--><!--字符串为空时,if判定为 true--><p th:if="${name}eq''">name 等于空</p><p th:if="${name}">th:if="${name}"</p>
</body>
- th:if :如果条件成立
- th:unless :如果条件不成立
- flag1成立,也就是为true,超链接1才显示;flag2不成立,也就是为false,超链接2才显示
条件不成立的标签不在DOM树中。
2-thymeleaf分支渲染
- 概述
使用th:switch进行分支渲染
- 语法
<span th:switch="${参数名}">
<span th:case="值1">内容1</span>
<span th:case="值2">内容2</span>
<span th:case="值3">内容3</span>
</span>
- 代码实现
@RequestMapping("/toDemo03")
public String toDemo03(Model model){model.addAttribute("roleName","admin");return "demo03";
}
<span th:switch="${roleName}">
<span th:case="admin">管理员</span>
<span th:case="kefu">客服</span>
<span th:case="customer">用户</span>
</span>
3-thymeleaf列表渲染
- 概述
使用th:each进行列表渲染
th:each属性用于迭代循环,语法:th:each="obj,iterStat:${objList}"
迭代对象可以是java.util.List,java.util.Map,数组等;
iterStat称作状态变量,属性有:
index:当前迭代对象的index(从0开始计算)
count: 当前迭代对象的index(从1开始计算)
size:被迭代对象的大小
current:当前迭代变量
even/odd:布尔值,当前循环是否是偶数/奇数(从0开始计算)
first:布尔值,当前循环是否是第一个
last:布尔值,当前循环是否是最后一个
- 代码实现
@RequestMapping("/test02")
public String test02(Model model) {List<User> userList = new ArrayList<>();User user1 = new User(1, "张三","root", 10000.0);User user2 = new User(2, "李四","admin", 20000.0);userList.add(user1);userList.add(user2);model.addAttribute("userList", userList);return "demo01";
}
<table><tr><td>脚标</td><td>ID</td><td>姓名</td><td>密码</td><td>余额</td></tr><tr th:each="user,userState:${userList}"><td th:text="${userState.index}"></td><td th:text="${user.id}">ID</td><td th:text="${user.username}">姓名</td><td th:text="${user.password}">密码</td><td th:text="${user.money}">余额</td></tr>
</table>
<ol><li>List循环:<table border="1"><tr><th>用户名</th><th>邮箱</th><th>管理员</th><th>状态变量:index</th><th>状态变量:count</th><th>状态变量:size</th><th>状态变量:current.userName</th><th>状态变量:even</th><th>状态变量:odd</th><th>状态变量:first</th><th>状态变量:last</th></tr><tr th:each="user,userStat : ${list}"><td th:text="${user.userName}">Onions</td><td th:text="${user.email}">test@test.com.cn</td><td th:text="${user.isAdmin}">yes</td><th th:text="${userStat.index}">状态变量:index</th><th th:text="${userStat.count}">状态变量:count</th><th th:text="${userStat.size}">状态变量:size</th><th th:text="${userStat.current.userName}">状态变量:current</th><th th:text="${userStat.even}">状态变量:even****</th><th th:text="${userStat.odd}">状态变量:odd</th><th th:text="${userStat.first}">状态变量:first</th><th th:text="${userStat.last}">状态变量:last</th></tr></table></li><li>Map循环:<div th:each="mapS:${map}"><div th:text="${mapS}"></div></div></li><li>数组循环:<div th:each="arrayS:${arrays}"><div th:text="${arrayS}"></div></div></li></ol>
thymeleaf渲染相关推荐
- springboot中thymeleaf渲染html模板
有时候我们会遇到这样的一个需求: 通过前端传入的数据渲染一个现成的打印模板出来,最后返回一个html格式的文本给前端,模板是有一个现成的,但是每次传入进来的数据是不同的,所以需要后端经过渲染出来返回渲 ...
- JAVA后台数据使用thymeleaf渲染html页面
一.前言 本篇介绍如何使用thymeleaf从后台获取数据后渲染至html页面上. 二.使用方法 1.注入依赖 <!-- Thymeleaf 模板引擎 --> <dependency ...
- Java(SpringCloud) 使用Thymeleaf渲染模板,通过Mailgun发送邮件
好久没发博客了,忙东忙西的,坚持! 本文介绍Java使用Mailgun搭建发送邮件的服务. 我把这个邮件服务放在了我的springCloudApplication(微服务Demo)项目的utilser ...
- ModelAndView绑定数据模型配合Thymeleaf渲染数据用法学习
分开介绍,大致说一下ModelAndView ModelAndView是Spring MVC里面重要的组成部分.分为两部分Model和View,Model是后端的返回值,View指的视图.先回忆一下当 ...
- thymeleaf依赖_玩转SpringBoot集成 Thymeleaf 模版引擎
随着互联网技术的发展,在前后端分离开发模式已经逐渐成为主流的今天,前后端技术的划分也越来越清晰,社会分工进一步细化,职业岗位也更加细分,慢慢开始就有了前端攻城狮和后端攻城狮,技术也进一步细分,出现了以 ...
- JavaWeb~模板引擎Thymeleaf总结
文章目录 模板引擎是什么 有哪些常见的模板引擎 Thymeleaf使用流程 常用标签 链接表达式@{...} 变量表达式${...} 选择变量表达*{...} 消息表达式#{...}(了解) 回顾:几 ...
- thymeleaf中th:field和th:value的区别
一:常用th:标签简介: 我们再用spring-boot框架的时候,可能不会采用我们以往用的jsp页面的方式,而是通过采用thymeleaf渲染的方式进行 前后台数据的交互.常用的标签有 th:hre ...
- 记录一次Thymeleaf th:inline内联问题
最近老大让我实现一个项目的国际化功能,大致就是支持项目页面一些固定框架的语言能支持中英文自由切换.所以需要前端跟后端的一些固定字段以及提示语以变量的形式嵌入.前端页面是用大家都很熟知的Thymelea ...
- springboot+thymeleaf 东软医疗项目 开发错误记录
学校的一个实训要求用springboot 开发,作为第一次接触该框架的前端人儿来说,是个挑战. 也做了半个月了,项目还有一半大概.笔者决定再此记录开发中遇到的错误,同大伙分享的同时,也告诫自己不要再犯 ...
最新文章
- Java连接Oracle数据库常用方法
- 网站品牌词指数提升的四大方法
- iOS游戏开发教程资源
- 34. 在排序数组中查找元素的第一个和最后一个位置012(二分查找+思路+详解+两种方法)Come Baby!!!!!!!! !
- Oracle零碎要点---多表联合查询,收集数据库基本资料
- 华为机试HJ27:查找兄弟单词
- 01.redis初识
- Java封装JSON数据
- 互联网寒冬下,为什么就你被裁了?
- Cadence PSpice 仿真7:电容型带通滤波器参数分析与性能分析仿真实战图文教程
- precede和previous_preceding,previous,prior辨析.ppt
- vb语言中怎样编码窗体中所有字体加粗_VBText控件中使字体加粗和倾斜的代码是什么...
- Nirvana为应用而生,开启公链市场新纪元
- Service Mesh实战
- 《佛密诸事》第七章:释逸牟尼四十九禅修录(节录十日)
- 一、flink基础之数据读取
- Windows7系统删除文件的相关问题【mfxp.com】
- 不支持发行版本5 解决方法
- nodejs学习_安装npm及cnpm(Windows)
- [NOIP1998 普及组] 幂次方