Spring Boot 微服务集成 HTML 页面的方法

小岛来信
小岛来信
发布时间:2026-10-15| 5人浏览过
原创

本文详细讲解如何在 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 模板引擎配置的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。