Thymeleaf入门
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!'
,... - 数字文字:
0
,34
,3.0
,12.3
,... - 布尔文字:
true
,false
- 空文字:
null
- 文字标记:
one
,sometext
,main
,…
- 文本字面量:
- 文字操作:
- 字符串连接:
+
- 字面替换:
|The name is ${name}|
- 字符串连接:
- 算术运算:
- 二元运算符:
+
,-
,*
,/
,%
- 减号(一元运算符):
-
- 二元运算符:
- 布尔运算:
- 二元运算符:
and
,or
- 布尔否定(一元运算符)
!
:,not
- 二元运算符:
- 比较和平等:
- 比较器:
>
,<
,>=
,<=
(gt
,lt
,ge
,le
) - 等式运算符:
==
,!=
(eq
,ne
)
- 比较器:
- 条件运算符:
- 如果-那么:
(if) ? (then)
- 如果-那么-否则:
(if) ? (then) : (else)
- 默认:
(value) ?: (defaultvalue)
- 如果-那么:
- 特殊代币:
- 无操作:
_
- 无操作:
在html页面中,要使用thymealf的标签,只需在原标签名前加th:
即可,如th:src
、th:href
、th: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入门相关推荐
- Thymeleaf入门到吃灰
Thymeleaf入门到吃灰 https://www.cnblogs.com/msi-chen/p/10974009.html
- springboot之thymeleaf入门
springboot之thymeleaf入门 由于JSP是不能在压缩包内解析的,所以spring boot默认不支持JSP的.因此我们需要使用第三方的模板引擎,比如我们这次介绍的thymeleaf 官 ...
- Thymeleaf 入门
基本项目结构: Thymeleaf配置: spring.thymeleaf.mode=LEGACYHTML5 spring.thymeleaf.cache=false spring.thymeleaf ...
- thymeleaf入门简介
读音 发音就是Time leaf 有些培训的会念成塞姆来福 其实念啥没问题 定义 Thymeleaf 是一个模板引擎,由于SpringBoot默认使用Thymeleaf,现逐步取代jsp. 特点 动静 ...
- thymeleaf入门基础语法笔记
记录一下,等做项目的时候不需要满世界的百度查语法 什么是thymeleaf thymeleaf是一个流行的模板引擎,该模板引擎采用java语言开发,模板引擎是一个技术名词,是跨领域跨平台的概念,在ja ...
- 第七篇:Spring Boot整合Thymeleaf_入门试炼03
基本语法实战案例01 在ThymeleafController中添加此方法 @RequestMapping("/show5")public String showInfo5(Mod ...
- 第七篇:Spring Boot 整合_Thymeleaf 入门试炼 QuickStart
1.1 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId> ...
- 【java学习之路】(javaWeb【后端】篇)004.Thymeleaf
第一章 Thymeleaf入门 1. 学习目标 掌握MVC 了解Thymeleaf的简介 掌握引入Thymeleaf 掌握Thymeleaf的入门案例 2. 内容讲解 2.1 MVC 2.1.1 为什 ...
- 5.5 Thymeleaf 页面布局(Thymeleaf 公共页面抽取)
第5章 Thymeleaf 模板引擎 5.1 Thymeleaf 入门 5.2 Thymeleaf 表达式 5.3 Thymeleaf 表达式的语法 5.4 Thymeleaf 的高级用法 5.5 T ...
最新文章
- NLP未来,路在何方?12位巨佬联名指路!
- SqlServer判断表是否存在
- visual studio如何更改启动项目?
- kafka mysql安装与配置_Mac环境canal+mysql+kafka的安装及使用
- linux ljie mysql_[Linux Mysql] Linux下Mysql的基本操作
- 算法题解:旋转数组的最小数字
- Linux zookeeper下载、单点部署
- 《开源框架那点事儿14》:教计算机程序解数学题
- Ride to Office(信息学奥赛一本通-T1227)
- 【Java】Java 如何查看对象的内存布局
- 1018. 可被 5 整除的二进制前缀
- Maya中操作普通DG节点和Dag节点的区别
- 串口通信----串口接收框接收不到数据
- js排序的时间复杂度_javascript的array.indexOf的时间复杂度是多少?
- 视频编码中CBR和VBR的区别,CRF和CQP的区别
- 用python画皇冠_GitHub - crown-prince/Python_PoC: 一款python编写的Web安全检测PoCEXP框架...
- listview优化几种写法(原创)
- 半小时一篇文过完C语言基础知识点
- 970万,看美女是如何炼成巨贪的!
- VUE前端二级部门联动下拉菜单
热门文章
- CC=2;RC=2495;AMQ8568: 找不到本机 JNI 库“'mqjbnd'”
- 【六】Tag标签管理
- Linux用户配置sudo权限(visudo)[转]
- 群主发普通红包.007
- 跨平台c开发库tbox:内存库使用详解
- 弘辽科技:网店卖女装好还是日用百货好?网店有何技巧?
- linux创建设备 mknod,linux用mknod创建设备(节点)
- MYSQL 5.7 数据库备份与恢复
- Python 学习笔记——Code with mosh课程
- 生产环境Docker部署ELK跨区访问kafka不通问题的解决