模板引擎Thymeleaf基本介绍和使用

一、序言

虽然目前大部分互联网项目都是基于先后端分离的思想开发,但也存在一些视图和后台代码还是在同个工程的。本文详细讲解SpringBoot视图框架Thymeleaf,一种基于Java语言实现的模板引擎技术。

二、常见标签

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
	<meta charset="UTF-8">
	<link rel="stylesheet" type="text/css" media="all" href="../../css/gtvg.css" th:href="@{/css/gtvg.css}" />
	<title>Title</title>
</head>
<body>
	<p th:text="${hello}">Hello World!</p>
</body>
</html>

以上便是常见的Thymeleaf模板代码,xmlns:th="http://www.thymeleaf.org"表示引入模板引擎标签,th:href用于引入外联样式文件,th:text用于动态展示标签的文本内容。Thymeleaf提供了很多标签用于解析视图,大体如下:

标签注释
th:insert布局标签,引入具体的内容
th:each遍历元素
th:replace引入文件,类似include
th:if条件判断,如果为真
th:unless条件判断,如果为假
th:switch条件判断,跟th:case配合使用
th:value指定属性标签
th:href设置超链接
th:src引入外部资源文件
th:text指定标签显示的内容

三、标准表达式

3.1 变量表达式${…}

主要用于显示上下文中的变量值,如果上下文中不存在指定内容,则显示默认的内容。

<p th:text="${content}">默认内容</p>

Thymeleaf内置的对象:

ctx、vars、locale:都是作用于上下文对象
request:作用于HttpServletRequest对象
response:作用于HttpServletResponse对象
session:作用于HttpSession对象
servletContext:作用于ServletContext对象

3.2 选择变量表达式*{…}

一般用于从被选定对象中获取属性,比如,从book对象中获取title属性可以这样子写:

<div th:object="${book}">
	<p>titile: <span th:text="*{title}">标题</span></p>
</div>
3.3 消息表达式#{…}

用于国际化内容的动态展示和替换,但需要提供相应的国际化配置信息。SpringBoot默认识别的语言配置为resource下的message.properties,其他国际化语言遵从“文件前缀_语言代码_国家代码.properties”的形式实现,例如:

## login_en_US.properties
login.tip=Please sign in
login.username=Username
login.password=Password
login.rememberme=Remember me
login.button=Login

编写配置文件:

# 国际化文件配置,包名+属性名
spring.messages.basename=com.keduw.login
3.4 链接表达式@{…}

一般用于链接跳转,需要同时传递参数时,需要按照@{链接(参数名=参数值,参数名=参数值…)}的形式,参数值同时支持表达式传值。

<a th:href="@{/order/details(orderId=${o.id})}">view</a>
3.5 片段表达式~{…}

用来标记一个片段传递给其他模板使用,最常用的方式是使用th:insertth:replace属性插入片段,比如:

<div th:insert="~{commonDiv::header}"></div>

将commonDiv模板中的header代码片段添加到指定位置中,Thymeleaf会自动查找“/resources/templates”中的commonDiv模板,header为片段名称。

四、基本使用

Thymeleaf的引入很简单,只需要导入相关依赖,添加指定配置信息即可。

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
spring.thymeleaf.cache = true // 启动模板缓存
spring.thymeleaf.encoding = UTF-8 //模板编码
spring.thymeleaf.mode = HTML5
spring.thymeleaf.prefix = classpath:/templates/ //模板页面存放路径
spring.thymeleaf.suffix = .html //模板后缀
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自平衡Azure

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值