thymeleaf基础语法:

变量输出与字符串操作:

​ th:text 表示在页面输出值

​ th:value 表示将一个值放入input标签的value中

判断字符串是否为空:

​ thymeleaf内置对象:调用内置对象需要#开头。并且大部分的内置对象都是以s结尾,例如dates

​ ${#strings.isEmpty(key)} :判断字符串是否为空,为空返回true,否则为false

​ ${#strings.contains(msg,'T')} :判断字符串是否包含指定的子串,包含为true,否则为false

​ ${#strings.startWith(msg,'a')} :判断字符串是否为某个子串开头。是为true,不是为false

${#strings.endsWith(msg,'a')}:判断当前字符串是否以子串结尾,如果是返回true,否则返回false

${#strings.length(msg)}:返回字符串的长度

${#strings.indexOf(msg,'h')}:查找子串的位置,并返回该子串的下标,如果没找到则返回-1

${#strings.substring(msg,13)}

${#strings.substring(msg,13,15)}:都表示截取字符串

${#strings.toUpperCase(msg)}

${#strings.toLowerCase(msg)}:表示转大写和小写

日期和数字格式化处理

​ 日期和数字格式化处理:#numbers,#dates

${#dates.format(key)}:格式化日期,默认的以浏览器默认语言为格式化标准

${#dates.format(key,'yyy/MM/dd')}:按照自定义的格式做日期转换

${#dates.year(key)}

${#dates.month(key)}

​ ${#dates.day(key)}:以上分别表示为:取年,月,日


Thymeleaf条件判断

th:if(条件成立时显示)th:unless(条件不成立时显示)

<span th:if="${sex} == '男'">性别:男
</span>
<span th:if="${sex} == '女'">性别:女
</span>

th:switchth:case为一组表示多分支选择语句

<div th:switch="${id}"><span th:case="1">ID为1</span><span th:case="2">ID为2</span><span th:case="3">ID为3</span>
</div>

迭代遍历

th:each

@RequestMapping("/show3")public String showInfo3(Model model){List<Users> list = new ArrayList<>();list.add(new Users(1,"张三",20));list.add(new Users(2,"李四",22));list.add(new Users(3,"王五",24));model.addAttribute("list", list);return "index3";}<table border="1"><tr><th>ID</th><th>Name</th><th>Age</th></tr><tr th:each="u : ${list}"><td th:text="${u.userid}"></td><td th:text="${u.username}"></td><td th:text="${u.userage}"></td></tr>
</table>状态变量
<table border="1"><tr><th>ID</th><th>Name</th><th>Age</th><th>Index</th><th>Count</th><th>Size</th><th>Even</th><th>Odd</th><th>First</th><th>lase</th></tr><tr th:each="u,var : ${list}"><td th:text="${u.userid}"></td><td th:text="${u.username}"></td><td th:text="${u.userage}"></td><td th:text="${var.index}"></td>//当前迭代器的索引从0开始<td th:text="${var.count}"></td>//当前迭代对象的计数 从1开始,可以增加一列为序号功能<td th:text="${var.size}"></td>//被迭代对象的长度<td th:text="${var.even}"></td>//布尔值,当前循环是否是偶数/奇数 从0开始<td th:text="${var.odd}"></td><td th:text="${var.first}"></td>//当前循环的是否是第一条如果是返回true否则返回false<td th:text="${var.last}"></td></tr></table>
状态变量属性
1,index:当前迭代器的索引 从0开始
2,count:当前迭代对象的计数 从1开始
3,size:被迭代对象的长度
4,even/odd:布尔值,当前循环是否是偶数/奇数 从0开始
5,first:布尔值,当前循环的是否是第一条,如果是返回true否则返回false
6,last:布尔值,当前循环的是否是最后一条,如果是则返回true否则返回false

th:each迭代Map集合

@RequestMapping("/show4")public String showInfo4(Model model){Map<String, Users> map = new HashMap<>();map.put("u1", new Users(1,"张三",20));map.put("u2", new Users(2,"李四",22));map.put("u3", new Users(3,"王五",24));model.addAttribute("map", map);return "index4";}<table border="1"><tr><th>ID</th><th>Name</th><th>Age</th></tr><tr th:each="maps : ${map}"><td th:each="entry:${maps}" th:text="${entry.value.userid}" ></td><td th:each="entry:${maps}" th:text="${entry.value.username}"></td><td th:each="entry:${maps}" th:text="${entry.value.userage}"></td></tr></table>

域对象操作

1.HttpServletRequest
request.setAttribute("req", "HttpServletRequest");
Request:<span th:text="${#httpServletRequest.getAttribute('req')}"></span><br/>2.HttpSession
request.getSession().setAttribute("sess", "HttpSession");
Session:<span th:text="${session.sess}"></span><br/>3.ServletContext servlet上下文
request.getSession().getServletContext().setAttribute("app", "Application");
Application:<span th:text="${application.app}"></span>

URL表达式

th:href

th:src

语法:@{}

URL类型

​ 绝对路径:<a th:href="@{http://www.baidu.com}">绝对路径</a>

​ 相对路径:

​ 相对于项目的上下文的相对路径:<a th:href="@{/show}">相对路径</a>

​ 相对于服务器路径的根:<a th:href="@{~/project2/resourcename}">相对于服务器的根</a>

在url中实现传递参数:<a th:href="@{/show(id=1,name=zhagnsan)}">相对路径-传参</a>

在url中通过restful风格进行参数传递

<a th:href="@{/path/{id}/show(id=1,name=zhagnsan)}">相对路径-传参-restful</a>

一.删除模板片段使用th:remove属性

th:remove的值如下:

  1.all:删除包含标签和所有的孩子。

  2.body:不包含标记删除,但删除其所有的孩子。

  3.tag:包含标记的删除,但不删除它的孩子。

  4.all-but-first:删除所有包含标签的孩子,除了第一个。

  5.none:什么也不做。这个值是有用的动态评估。

参见:https://www.cnblogs.com/suncj/p/4030975.html

Thymeleaf简单格式化输出

为integer和Date属性添加格式输出:#numbers,#dates的使用

字符串连接使用+号进行连接

原样输出和转义输出 utext原样输出,text转义输出

转载于:https://www.cnblogs.com/jasonboren/p/11395448.html

springboot页面模板thymeleaf的简单用法相关推荐

  1. SpringBoot+2次MD5登录密码加密+MyBatisPlus+Thymeleaf+Bootstrap简单实现登录功能,一文轻松搞定!

    这里写目录标题 一.演示GIF 二.开发前期准备 1.数据库 2.依赖POM.XML 3.idea结构目录 三.后端 1.实体类 2.mapper接口 3.mapper.xml 4.Servicce接 ...

  2. springboot+mybatis+thymeleaf学习一个简单的管理系统

    在淘宝上买的课程的一个例子,看了视频,抄了一遍代码,那时候刚开始学springboot,所以感觉没什么用,然后就又学习了一段时间.最近回想起来有这样的一个系统符合我现阶段的学习程度,然后就又写了一遍. ...

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

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

  4. 【Springboot学习笔记】SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法

    [Springboot学习笔记]SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法 目录 1.搭建环境 1.1直接从网上下载SpringB ...

  5. springboot之thymeleaf入门

    springboot之thymeleaf入门 由于JSP是不能在压缩包内解析的,所以spring boot默认不支持JSP的.因此我们需要使用第三方的模板引擎,比如我们这次介绍的thymeleaf 官 ...

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

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

  7. 玩转springboot:thymeleaf模板引擎入门程序

    一.前言 常用的模板引擎有:JSP.Velocity.Freemarker.Thymeleaf 但是,Springboot默认是不支持JSP的,默认使用thymeleaf模板引擎.而且,语法更简单,功 ...

  8. 九、SpringBoot集成Thymeleaf模板引擎

    Thymeleaf咋读!??? 呵呵,是不是一脸懵逼...哥用我的大学四级英文知识告诉你吧:[θaimlif]. 啥玩意?不会音标?...那你就这样叫它吧:"赛母李府",大部分中国 ...

  9. springboot嵌入thymeleaf后css404_SpringBoot2整合Thymeleaf

    前言 什么是Thymeleaf Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎. Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 -HTML可以在浏览器中 ...

最新文章

  1. 为啥同一个程序,单步执行和debug执行出现的结果不一样呢?
  2. P - The Shortest Path in Nya Graph HDU - 4725
  3. android 活动外的类,Android – 活动外的startActivityForResult?
  4. 文件2. 文件重命名
  5. 走进新华三解决方案 360°业务能力中心,读懂新华三如何助力企业数字化转型
  6. Python:List、tuple、dict、set
  7. java检测用户是否重复登录_Java web工程判断用户是否重复登录
  8. [Bzoj3262]陌上花开(CDQ分治树状数组||树套树)
  9. android炫酷的效果
  10. 自学c语言难,c语言难学吗?
  11. 发布一款小软件:和讯博客助手-新闻采集测试版- 0.1.0
  12. 黑苹果开启文件保险箱之完全教程
  13. 下载哔哩哔哩代码php,哔哩哔哩电脑客户端 v1.4.4 官方最新版
  14. JavaScript使用百度地图API获取当前位置信息
  15. 电子学会2023年3月青少年软件编程python等级考试试卷(四级)真题,含答案解析
  16. 几种操作系统的基本特点
  17. 【ReView】 学习日志 from18/11/24 to 19/7/10
  18. 上行30m下行200m是多少宽带_套餐内有多少流量,就加送多少流量!电信流量攻势太凶猛!...
  19. 将录音转成文字的方法
  20. python人工智能课程实例_python人工智能AI深度学习/机器学习全套课程 视频教程+ppt+代码...

热门文章

  1. 极光推送第一次进入APP无法获取RegistrationID
  2. [英语阅读]希腊古剧场对高跟鞋说“不”
  3. 多目标应用:基于MOGWO的地铁隧道上方基坑工程优化设计(提供MATLAB代码)
  4. CocosCreator实现不规则的点击区域监听
  5. java+am+上午,java – 使用AM/PM以12小时格式显示当前时间
  6. ROS机器人开机自启动设置
  7. 三星pay显示无法连接服务器,三星智付Samsung pay正式开启:服务器宕机 三星紧急发公告...
  8. Elasticsearch:《大数据集群学习笔记与实战》之es集群(2)es基本操作
  9. win10 运行debussy不能打开波形窗口问题
  10. Word如何设置单元格垂直居中