springboot&thymeleaf
在本文中,我们将讨论如何为Spring Boot应用程序设置和使用Thymeleaf。
介绍
一般来说,Jsp被称为生成Spring MVC应用程序时生成HTML的默认选择。JSP是一种成熟的技术并提供了许多好处,然而,有一些点我们需要注意。
- JSP不是模板引擎。这些文件在作为Web内容之前被编译到servlet。
- Thymeleaf是一个真正的模板引擎,它采用HTML文件,解析它,然后生成正在服务的Web内容。
- 当与JSP视图比较时,Thymeleaf更像是一个HTML类别的视图。
- 它允许使用模板作为原型,意味着它们可以被视为静态文件。
springboot提供了自动配置来支持Thymeleaf。
springboot集成Thymeleaf
springboot集成Thymeleaf分几个步骤,我们逐步分析一下。
一
引入maven依赖
springboot将为Thymeleaf提供自动配置。在pom.xml中添加spring-boot-starter-thymeleaf依赖项来启用此自动配置。
<!-- thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
不需要其他的配置,springboot将注入所有必需的配置来使用Thymeleaf。
二
Thymeleaf模板
我们可以将HTML模板放置在src/main/resources/templates目录下。springboot将自动选择模板。让我们创建一个基于Thymeleaf的示例HTML模板(index.html):
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>用户信息</h2>
<div>
<p>ID:<span th:text="${user.id}"></span></p>
<p>名字:<span th:text="${user.name}"></span></p>
<p>年龄:<span th:text="${user.age}"></span></p>
</div>
</body>
</html>
我们仔细看一下index.html模板。
- 第一行是标准H5声明标签。
- 第二行thymeleaf的命名空间。
- <meta >标签定义字符编码。
在我们的示例中,将打印用户信息,并获取th:text表达式的值来渲染{user.id},{user.name}和
三
自定义模板目录
默认情况下,springboot自动去src/resources/templates目录下获取html模板,但是我们也可以使用自定义配置
来改变默认目录。
在application.properties文件中设置spring.thymeleaf.template-resolver-order=0。然后下一步创建自定义
ClassLoaderTemplateResolver。
@Configuration
public class CustomConfig implements WebMvcConfigurer {
@Bean
public ClassLoaderTemplateResolver customTemplateResolver() {
ClassLoaderTemplateResolver configurer = new ClassLoaderTemplateResolver();
configurer.setPrefix("customLocation/");
configurer.setSuffix(".html");
configurer.setTemplateMode(TemplateMode.HTML);
configurer.setCharacterEncoding("UTF-8");
configurer.setOrder(0); // this is important. This way spring //boot will listen to both places 0 and 1
configurer.setCheckExistence(true return configurer;
return configurer;
}
}
四
请求控制器
在这个步骤中,我们将创建一个Spring MVC控制器,我们的控制器将执行以下内容。
- 处理获取/user/{id}路径映射的GET请求。
- 返回名称为“index”的视图。Spring Boot视图解析器将从以下位置src/main/resources/templates/index加载HTML模板。
五
启动应用&测试
启动应用:
@SpringBootApplication
public class App
{
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
浏览器输入http://localhost:8080/user/1:
总结
在本文中,我们介绍了如何为springboot应用程序设置和使用Thymeleaf。我们介绍了不同的springboot Thymeleaf配置以及如何定制Thymeleaf行为。希望能够带来帮助。