SpringBoot——模板引擎及原理
Spring Boot支持多种模板引擎,如Thymeleaf、FreeMarker、Mustache等。以下是使用Thymeleaf模板引擎的一个简单示例。
- 添加Thymeleaf依赖到
pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
- 在
src/main/resources/templates
目录下创建一个HTML模板文件,例如greeting.html
:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Greeting</title>
</head>
<body>
<h1 th:text="'Hello, ' + ${name} + '!'"></h1>
</body>
</html>
- 创建一个Controller来渲染这个模板:
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class GreetingController {
@GetMapping("/greeting")
public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}
当访问/greeting
路径时,Spring Boot会使用Thymeleaf渲染greeting.html
模板,并将其中的${name}
替换为传递给Model
的值。
Thymeleaf的工作原理是在HTML模板中插入特殊的属性,例如th:text
,这告诉Thymeleaf这个标签的textContent
应该被替换为模型中的对应值。当请求到达Controller时,Controller将数据添加到模型中,并指定返回的视图名称(在这个例子中是greeting
,对应greeting.html
)。Spring Boot的视图解析器会处理这个视图名称,并最终渲染出最终的HTML响应。
评论已关闭