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渲染相关推荐

  1. springboot中thymeleaf渲染html模板

    有时候我们会遇到这样的一个需求: 通过前端传入的数据渲染一个现成的打印模板出来,最后返回一个html格式的文本给前端,模板是有一个现成的,但是每次传入进来的数据是不同的,所以需要后端经过渲染出来返回渲 ...

  2. JAVA后台数据使用thymeleaf渲染html页面

    一.前言 本篇介绍如何使用thymeleaf从后台获取数据后渲染至html页面上. 二.使用方法 1.注入依赖 <!-- Thymeleaf 模板引擎 --> <dependency ...

  3. Java(SpringCloud) 使用Thymeleaf渲染模板,通过Mailgun发送邮件

    好久没发博客了,忙东忙西的,坚持! 本文介绍Java使用Mailgun搭建发送邮件的服务. 我把这个邮件服务放在了我的springCloudApplication(微服务Demo)项目的utilser ...

  4. ModelAndView绑定数据模型配合Thymeleaf渲染数据用法学习

    分开介绍,大致说一下ModelAndView ModelAndView是Spring MVC里面重要的组成部分.分为两部分Model和View,Model是后端的返回值,View指的视图.先回忆一下当 ...

  5. thymeleaf依赖_玩转SpringBoot集成 Thymeleaf 模版引擎

    随着互联网技术的发展,在前后端分离开发模式已经逐渐成为主流的今天,前后端技术的划分也越来越清晰,社会分工进一步细化,职业岗位也更加细分,慢慢开始就有了前端攻城狮和后端攻城狮,技术也进一步细分,出现了以 ...

  6. JavaWeb~模板引擎Thymeleaf总结

    文章目录 模板引擎是什么 有哪些常见的模板引擎 Thymeleaf使用流程 常用标签 链接表达式@{...} 变量表达式${...} 选择变量表达*{...} 消息表达式#{...}(了解) 回顾:几 ...

  7. thymeleaf中th:field和th:value的区别

    一:常用th:标签简介: 我们再用spring-boot框架的时候,可能不会采用我们以往用的jsp页面的方式,而是通过采用thymeleaf渲染的方式进行 前后台数据的交互.常用的标签有 th:hre ...

  8. 记录一次Thymeleaf th:inline内联问题

    最近老大让我实现一个项目的国际化功能,大致就是支持项目页面一些固定框架的语言能支持中英文自由切换.所以需要前端跟后端的一些固定字段以及提示语以变量的形式嵌入.前端页面是用大家都很熟知的Thymelea ...

  9. springboot+thymeleaf 东软医疗项目 开发错误记录

    学校的一个实训要求用springboot 开发,作为第一次接触该框架的前端人儿来说,是个挑战. 也做了半个月了,项目还有一半大概.笔者决定再此记录开发中遇到的错误,同大伙分享的同时,也告诫自己不要再犯 ...

最新文章

  1. Java连接Oracle数据库常用方法
  2. 网站品牌词指数提升的四大方法
  3. iOS游戏开发教程资源
  4. 34. 在排序数组中查找元素的第一个和最后一个位置012(二分查找+思路+详解+两种方法)Come Baby!!!!!!!! !
  5. Oracle零碎要点---多表联合查询,收集数据库基本资料
  6. 华为机试HJ27:查找兄弟单词
  7. 01.redis初识
  8. Java封装JSON数据
  9. 互联网寒冬下,为什么就你被裁了?
  10. Cadence PSpice 仿真7:电容型带通滤波器参数分析与性能分析仿真实战图文教程
  11. precede和previous_preceding,previous,prior辨析.ppt
  12. vb语言中怎样编码窗体中所有字体加粗_VBText控件中使字体加粗和倾斜的代码是什么...
  13. Nirvana为应用而生,开启公链市场新纪元
  14. Service Mesh实战
  15. 《佛密诸事》第七章:释逸牟尼四十九禅修录(节录十日)
  16. 一、flink基础之数据读取
  17. Windows7系统删除文件的相关问题【mfxp.com】
  18. 不支持发行版本5 解决方法
  19. nodejs学习_安装npm及cnpm(Windows)
  20. [NOIP1998 普及组] 幂次方

热门文章

  1. IdentityServer4揭秘---登录
  2. idea创建Gradle项目
  3. springboot内嵌tomcat的jar包启动流程
  4. 阅文集团换帅:程武辞任CEO职务 总裁侯晓楠接任
  5. 科济药业上市首日跌破发行价,基石投资者账面亏损超1亿港元
  6. Java 可重入锁ReenTrant
  7. [杂]记一次买笔记本电脑
  8. 网易技术美术总监:深度解析次世代手游的贴图与着色技巧
  9. [2010/09/29]爱护牙齿Take Care of Your Teeth
  10. android 炫飞 打印机,佳能炫飞打印机!郊游后将快乐打出来