下面是详细的讲解“SpringBoot整合Thymeleaf的方法”的完整攻略:
一、添加Thymeleaf依赖
首先,我们需要在pom.xml文件中添加Thymeleaf依赖,以使用它的相关功能。可以根据不同的版本进行选择,这里以2.5.2版本的依赖为例:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>2.5.2</version>
</dependency>
二、配置Thymeleaf视图解析器
在Spring Boot中,我们不需要手动生成Thymeleaf视图解析器,因为Spring Boot会自动为我们配置默认的视图解析器。但是,我们也可以根据自己的需求进行配置。下面是默认的Thymeleaf视图解析器的配置:
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
可以看到,prefix用于指定模板路径的前缀,suffix用于指定模板文件的后缀名。
如果我们需要更改Thymeleaf视图解析器的配置,可以在application.properties文件中添加以下配置项:
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
其中,mode可以指定HTML5、XML、XHTML等模式,encoding为编码格式,content-type为MIME类型。
三、在Controller中使用Thymeleaf
一个最简单的使用Thymeleaf的示例是在Controller中渲染一个HTML页面。如下所示:
@Controller
public class HomeController {
@GetMapping("/")
public String home() {
return "home";
}
}
在以上的示例中,我们使用@GetMapping注解将home()方法映射到"/"路径。并且方法的返回值是"home",这是Thymeleaf模板的名称,会在classpath:/templates/路径下寻找名字为home的html模板文件。
在模板文件中,我们可以简单的编写HTML代码和一些Thymeleaf的相关语法,如下所示:
<!DOCTYPE html>
<html lang="zh-cmn-Hans" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>首页</title>
</head>
<body>
<h1 th:text="${title}"></h1>
<div th:each="item : ${items}">
<p th:text="${item.name}"></p>
</div>
</body>
</html>
在上述Thymeleaf模板中,我们可以使用${variable}的语法访问HomeController传递来的model对象中的属性值,并且使用th:text和th:each等Thymeleaf的语法将model中的数据渲染到页面中。
四、使用Thymeleaf模板继承
Thymeleaf提供了模板继承的功能,可以在多个页面之间复用代码块。以下是一个使用Thymeleaf模板继承的示例:
定义layout.html文件:
<!DOCTYPE html>
<html lang="zh-cmn-Hans" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title th:text="${title}"></title>
</head>
<body>
<header>
<nav>
<a href="/">首页</a>
<a href="/about">关于我们</a>
<a href="/contact">联系我们</a>
</nav>
</header>
<main>
<section th:fragment="content"></section>
</main>
</body>
</html>
在layout.html文件中,我们定义了一个包含导航条和主体内容的结构。同时,我们使用了th:fragment="content"语法定义了一个占位符,后面我们可以在子模板中来填充这个占位符。
定义home.html子模板:
<!DOCTYPE html>
<html lang="zh-cmn-Hans" xmlns:th="http://www.thymeleaf.org"
th:replace="layout :: content">
<head>
<meta charset="UTF-8"/>
<title>首页</title>
</head>
<body>
<h1 th:text="${title}"></h1>
<div th:each="item : ${items}">
<p th:text="${item.name}"></p>
</div>
</body>
</html>
在home.html子模板中,我们使用了th:replace="layout::content"语法引用layout.html中的占位符,并且填充了自己的内容。
定义about.html子模板:
<!DOCTYPE html>
<html lang="zh-cmn-Hans" xmlns:th="http://www.thymeleaf.org"
th:replace="layout :: content">
<head>
<meta charset="UTF-8"/>
<title>关于我们</title>
</head>
<body>
<h1>我们是一家不错的公司</h1>
<p>我们为客户提供最好的服务</p>
</body>
</html>
在about.html子模板中,我们也使用了th:replace="layout::content"语法引用layout.html中的占位符,并且填充了自己的内容。
五、总结
以上就是Spring Boot整合Thymeleaf的详细攻略了。我们可以按照以上的步骤来使用Thymeleaf,快速搭建一个Web应用程序,并且使用模板继承来复用代码块。当然,在真实应用场景中,还有很多Thymeleaf的高级用法,比如使用表达式语言等等,这些内容需要我们继续深入学习。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Thymeleaf的方法 - Python技术站