一、Thymeleaf介绍
Thymeleaf是一种服务器端Java模板引擎,适用于构建基于MVC框架的Web应用程序。它的设计目标是在服务器端生成HTML页面,将数据与HTML页面进行动态绑定,以产生最终的可视化内容。
Thymeleaf的主要特点包括:
-
自然模板:Thymeleaf模板与常规HTML是兼容的,非Thymeleaf标签可以在Thymeleaf模板中正常工作,而没有额外的模板解析步骤。
-
更好的可读性:Thymeleaf模板具有良好的可读性,可以读作普通的HTML文件,即使没有模板引擎的上下文。
-
内置表达式:Thymeleaf提供了强大的表达式语言(Thymeleaf Expression Language,简称Thymeleaf EL),可以在模板中访问和操作数据。
-
语法短小精悍:Thymeleaf标签的语法简单明了,易于学习和使用。
-
扩展性:Thymeleaf支持自定义标签、表达式和工具,可以根据项目需求进行功能扩展。
二、Thymeleaf使用
2.1 引入Thymeleaf相关依赖(引入Starter)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2.2 默认放置处为:classpath:/templates,
模板的默认后缀名为:.html
SpringBoot在ThymeleafProperties.class
里面进行了默认配置:
@ConfigurationProperties(prefix = "spring.thymeleaf")
public class ThymeleafProperties {
private static final Charset DEFAULT_ENCODING = StandardCharsets.UTF_8;
public static final String DEFAULT_PREFIX = "classpath:/templates/";//模板放置处
public static final String DEFAULT_SUFFIX = ".html";//文件的后缀名
如果想要修改默认的模板位置和后缀名,可以在Spring Boot的配置文件中进行设置。以下是一个示例的application.properties
配置文件内容:
spring.thymeleaf.prefix=classpath:/mytemplates/
spring.thymeleaf.suffix=.tpl
2.3 创建html页面,配置Thymeleaf的命名空间(xmlns:th="http://www.thymeleaf.org"
)
xmlns:th="http://www.thymeleaf.org"
这个声明使你能够在HTML文档中使用Thymeleaf的标签和表达式。通过使用Thymeleaf的特定命名空间,你可以在模板中引用Thymeleaf的功能和属性。
/templates/success.html:文章来源:https://www.toymoban.com/news/detail-607821.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1 th:text="${msg}">nice</h1>
<h2>
<a href="www.baidu.com" th:href="${link}">去百度</a> <br/>
<a href="www.google.com" th:href="@{/link}">去百度</a>
</h2>
</body>
</html>
2.4 编写相应的controller
@Controller
public class ViewTestController {
@GetMapping("/hello")
public String hello(Model model){
//model中的数据会被放在请求域中 request.setAttribute("a",aa)
model.addAttribute("msg","你好~");
model.addAttribute("link","https://blog.csdn.net/");
return "success";
}
}
这样通过访问localhost:8080/hello,即可跳转到success.html页面文章来源地址https://www.toymoban.com/news/detail-607821.html
三、基本语法
3.1 表达式
表达式名字 | 语法 | 用途 |
---|---|---|
变量取值 | ${…} | 获取请求域、session域、对象等值 |
选择变量 | *{…} | 获取上下文对象值 |
消息 | #{…} | 获取国际化等值 |
链接 | @{…} | 生成链接 |
片段表达式 | ~{…} | jsp:include 作用,引入公共页面片段 |
3.2 属性优先级
Order | Feature | Attributes |
---|---|---|
1 | Fragment inclusion |
th:insert th:replace
|
2 | Fragment iteration | th:each |
3 | Conditional evaluation |
th:if th:unless th:switch th:case
|
4 | Local variable definition |
th:object th:with
|
5 | General attribute modification |
th:attr th:attrprepend th:attrappend
|
6 | Specific attribute modification |
th:value th:href th:src ...
|
7 | Text (tag body modification) |
th:text th:utext
|
8 | Fragment specification | th:fragment |
9 | Fragment removal | th:remove |
四、Thymeleaf内联写法
<p>Hello, [[${session.user.name}]]</p>
到了这里,关于视图解析-Thymeleaf初体验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!