1. Thymeleaf概述

Thymeleaf是一个和Velocity、FreeMarker 类似的模板引擎,它在有网络和无网络的环境下皆可运行。因为它支持html原型,在html的标签里增加了额外的属性来达到模板+数据的展示方式。浏览器解释html时会忽略未定义的标签属性,所以thymeleaf的模板可以静态地运行。当有数据返回到页面时,Thymeleaf标签会动态地替换掉静态内容,使页面动态显示。

它与SpringBoot完美结合,SpringBoot提供了Thymeleaf的默认配置,并且为Thymeleaf设置了视图解析器。它可以快速实现表单绑定、属性编辑器、国际化等功能

Thymeleaf官方文档:Tutorial: Using Thymeleafhttps://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html

2.在SpringBoot中的配置

2.1引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2.2 配置thymeleaf视图解析器

SpringBoot自动为Thymealf注册了一个视图解析器ThymealfViewResolver,并且配置了模板(HTML)的位置,与JSP类似的前缀+视图名+后缀的风格。我们可以进到它的配置文件(ThymeleafProperties)里去看:

也可以在application.properties中自定义配置:

#页面修改后立即生效,关闭缓存,立即刷新
spring.thymeleaf.cache=false
#Content-Type 的值(默认值: text/html )
spring.thymeleaf.content-type=text/html
# 模板编码
spring.thymeleaf.encoding=UTF-8
# 在构建 URL 时添加到视图名称前的前缀(默认值: classpath:/templates/ )
spring.thymeleaf.prefix=classpath:/templates/
# 在构建 URL 时添加到视图名称后的后缀(默认值: .html )
spring.thymeleaf.suffix=.html

3.基本使用方法

3.1要在html页面中使用thymeleaf的标签,必须引入名称空间。

<html lang="en" xmlns:th="http://thymeleaf.org">

3.2表达式的使用

  • 简单的表达:

    • 变量表达式:${...}
    • 选择变量表达式:*{...}
    • 消息表达式:#{...}
    • 链接 URL 表达式:@{...}
    • 片段表达式:~{...}
  • 字面量
    • 文本字面量:'one text''Another one!',...
    • 数字文字:0343.012.3,...
    • 布尔文字:true,false
    • 空文字:null
    • 文字标记:onesometextmain,…
  • 文字操作:
    • 字符串连接:+
    • 字面替换:|The name is ${name}|
  • 算术运算:
    • 二元运算符:+-*/,%
    • 减号(一元运算符):-
  • 布尔运算:
    • 二元运算符:and,or
    • 布尔否定(一元运算符)!:,not
  • 比较和平等:
    • 比较器:><>=<=gtltgele)
    • 等式运算符:==!=eqne)
  • 条件运算符:
    • 如果-那么:(if) ? (then)
    • 如果-那么-否则:(if) ? (then) : (else)
    • 默认:(value) ?: (defaultvalue)
  • 特殊代币:
    • 无操作:_

在html页面中,要使用thymealf的标签,只需在原标签名前加th:即可,如th:srcth:hrefth:text
${},变量表达式,它可以获取到Controller层存入Model的值

// html页面中获取并显示
<span th:text="${name}">九月</span>
<span th:text="${user.age}">18</span>

*{},选择变量表达式,可以省略对象名,直接获取属性值

<div th:object="${user}"><p th:text="*{name}">九月</p><p th:text="*P{age}">18</p>
</div>

3.3URL的使用

①绝对网址,绝对URL用于创建到其他服务器的链接,需要指定协议名称http或者https,如:

<a th:href="@{https://www.baidu.com}">百度</a>

②上下文相关URL,即与项目根相关联的URL,这里假设我们的war包为app.war,且没有在tomcat的server.xml配置项目的路径(Context),则在Tomcat启动之后,就会在webapps文件下产生一个app文件夹,此时app就是上下文路径(Context)

<!-- 在页面这样写 -->
<a th:href="@{/blog/search}">跳转</a>
<!-- Thymeleaf解析之后是这样的 -->
<a href="/app/blog/search">跳转</a>

③服务器相关URL,它与上下文路径很相似,它主要用于一个Tomcat下运行有多个项目的情况。比如说我们当前项目为app,如果tomcat还运行着一个otherApp,我们就可以通过该方法访问otherApp的请求路径。

<!-- 在页面这样写 -->
<a th:href="@{~/otherApp/blog/search}">跳转</a>
<!-- Thymeleaf解析之后是这样的 -->
<a href="/otherApp/blog/search">跳转</a>

④有时候我们需要页面带参数传递到后端,则可以使用下面这个方法

<!-- 在页面这样写 -->
<a th:href="@{/blog/search(id=3,blogName='Java')}" >跳转</a>
<!-- Thymeleaf解析之后是这样的,这里忽略项目路径 -->
<a href="/blog/search?id=3&blogName=Java" >跳转</a><!-- 还可以这样写,实现restful风格的效果 -->
<a th:href="/blog/{id}/search(id=3&blogName=Java)">跳转</a>
<!-- Thymeleaf解析之后是这样的,这里忽略项目路径 -->
<a href="/blog/3/search?blogName=java">跳转</a>

3.4基本属性

Thymeleaf入门相关推荐

  1. Thymeleaf入门到吃灰

    Thymeleaf入门到吃灰 https://www.cnblogs.com/msi-chen/p/10974009.html

  2. springboot之thymeleaf入门

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

  3. Thymeleaf 入门

    基本项目结构: Thymeleaf配置: spring.thymeleaf.mode=LEGACYHTML5 spring.thymeleaf.cache=false spring.thymeleaf ...

  4. thymeleaf入门简介

    读音 发音就是Time leaf 有些培训的会念成塞姆来福 其实念啥没问题 定义 Thymeleaf 是一个模板引擎,由于SpringBoot默认使用Thymeleaf,现逐步取代jsp. 特点 动静 ...

  5. thymeleaf入门基础语法笔记

    记录一下,等做项目的时候不需要满世界的百度查语法 什么是thymeleaf thymeleaf是一个流行的模板引擎,该模板引擎采用java语言开发,模板引擎是一个技术名词,是跨领域跨平台的概念,在ja ...

  6. 第七篇:Spring Boot整合Thymeleaf_入门试炼03

    基本语法实战案例01 在ThymeleafController中添加此方法 @RequestMapping("/show5")public String showInfo5(Mod ...

  7. 第七篇:Spring Boot 整合_Thymeleaf 入门试炼 QuickStart

    1.1 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId> ...

  8. 【java学习之路】(javaWeb【后端】篇)004.Thymeleaf

    第一章 Thymeleaf入门 1. 学习目标 掌握MVC 了解Thymeleaf的简介 掌握引入Thymeleaf 掌握Thymeleaf的入门案例 2. 内容讲解 2.1 MVC 2.1.1 为什 ...

  9. 5.5 Thymeleaf 页面布局(Thymeleaf 公共页面抽取)

    第5章 Thymeleaf 模板引擎 5.1 Thymeleaf 入门 5.2 Thymeleaf 表达式 5.3 Thymeleaf 表达式的语法 5.4 Thymeleaf 的高级用法 5.5 T ...

最新文章

  1. NLP未来,路在何方?12位巨佬联名指路!
  2. SqlServer判断表是否存在
  3. visual studio如何更改启动项目?
  4. kafka mysql安装与配置_Mac环境canal+mysql+kafka的安装及使用
  5. linux ljie mysql_[Linux Mysql] Linux下Mysql的基本操作
  6. 算法题解:旋转数组的最小数字
  7. Linux zookeeper下载、单点部署
  8. 《开源框架那点事儿14》:教计算机程序解数学题
  9. Ride to Office(信息学奥赛一本通-T1227)
  10. 【Java】Java 如何查看对象的内存布局
  11. 1018. 可被 5 整除的二进制前缀
  12. Maya中操作普通DG节点和Dag节点的区别
  13. 串口通信----串口接收框接收不到数据
  14. js排序的时间复杂度_javascript的array.indexOf的时间复杂度是多少?
  15. 视频编码中CBR和VBR的区别,CRF和CQP的区别
  16. 用python画皇冠_GitHub - crown-prince/Python_PoC: 一款python编写的Web安全检测PoCEXP框架...
  17. listview优化几种写法(原创)
  18. 半小时一篇文过完C语言基础知识点
  19. 970万,看美女是如何炼成巨贪的!
  20. VUE前端二级部门联动下拉菜单

热门文章

  1. CC=2;RC=2495;AMQ8568: 找不到本机 JNI 库“'mqjbnd'”
  2. 【六】Tag标签管理
  3. Linux用户配置sudo权限(visudo)[转]
  4. 群主发普通红包.007
  5. 跨平台c开发库tbox:内存库使用详解
  6. 弘辽科技:网店卖女装好还是日用百货好?网店有何技巧?
  7. linux创建设备 mknod,linux用mknod创建设备(节点)
  8. MYSQL 5.7 数据库备份与恢复
  9. Python 学习笔记——Code with mosh课程
  10. 生产环境Docker部署ELK跨区访问kafka不通问题的解决