Spring Boot 微服务集成 HTML 页面的方法
本文详细讲解如何在 Spring Boot 项目中集成并渲染 HTML 页面。主要介绍了两种常用模板引擎 Thymeleaf 和 FreeMarker 的配置流程,包括 POM 依赖添加、核心属性配置、控制器代码示例以及模板文件结构说明。
项目准备
Spring Boot 原生设计用于构建 RESTful API,若需直接返回 HTML 页面,需引入视图解析相关的依赖并配置模板路径。操作前请确保开发环境已安装 JDK 8 以上版本,且项目由 Maven 或 Gradle 管理。
使用 Thymeleaf 集成 HTML
Thymeleaf 是 Spring Boot 官方推荐的默认模板引擎,支持自然模板(即在浏览器中直接打开 HTML 即可预览),非常适合集成现有的静态页面。
第1步:添加依赖
在 pom.xml 文件中引入 spring-boot-starter-thymeleaf。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
第2步:配置应用属性
在 src/main/resources/application.properties 中配置模板前缀、后缀、字符集及缓存策略。
# 配置 Thymeleaf 模板文件所在路径
spring.thymeleaf.prefix=classpath:/templates/
# 配置 Thymeleaf 模板文件后缀名
spring.thymeleaf.suffix=.html
# 配置 Thymeleaf 模板文件字符集
spring.thymeleaf.encoding=UTF-8
# 开启缓存 (生产环境建议为 true)
第3步:创建 HTML 模板
在 src/main/resources/templates 目录下创建 index.html 文件。使用 th:text 等语法进行数据绑定。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Spring Boot + Thymeleaf</title>
</head>
<body>
<h1>Welcome to Spring Boot</h1>
<p th:text="${message}">This is a placeholder text.</p>
</body>
</html>
第4步:编写控制器
使用 @Controller 注解,通过 ModelAndView 将模板名称和数据传递到视图层。
@Controller
public class HomeController {
@GetMapping("/")
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView("index");
modelAndView.addObject("message", "Hello, world!");
return modelAndView;
}
}
启动应用并访问 http://localhost:8080 即可看到渲染后的页面。
使用 FreeMarker 集成 HTML
如果项目历史遗留使用了 FreeMarker,或者团队更习惯其模板语法,可按以下步骤配置。
第5步:添加 FreeMarker 依赖
在 pom.xml 中添加 spring-boot-starter-freemarker 依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
第6步:配置视图解析器
修改 application.properties,指定 FreeMarker 的前缀和后缀。注意:Spring Boot 默认 FreeMarker 扫描 /templates/ 目录,但传统配置常指向 /WEB-INF/views/。若保持默认目录结构,通常无需额外配置 prefix/suffix,或根据实际目录结构调整。
# 配置 FreeMarker 前缀(若使用默认 templates 目录可省略或调整)
spring.freemarker.prefix=/
# 配置 FreeMarker 后缀
spring.freemarker.suffix=.ftl
第7步:创建 FreeMarker 模板
在资源目录下创建 home.ftl 文件,使用 ${var} 语法取值。
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
第8步:编写控制器
自由标记模式下,控制器通常返回模板文件名(不带后缀),并通过 Model 对象注入数据。
@Controller
public class HomeController {
@GetMapping("/")
public String home(Model model) {
model.addAttribute("message", "Hello World!");
// 返回模板文件名,对应 home.ftl
return "home";
}
}
完成判断与注意事项
- 路径一致性:确保 Controller 返回的模板字符串与实际文件路径匹配。
- 依赖冲突:若同时引入 Thymeleaf 和 FreeMarker,Spring Boot 会自动检测可用引擎;优先使用前引入的或在配置中显式指定的引擎。
- 静态资源:HTML 中引用的 CSS、JS 图片应放置在
src/main/resources/static目录下,以便自动映射。
以上就是 Spring Boot 集成 HTML 页面的详细内容,更多关于 Spring Boot 模板引擎配置的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









