news 2026/3/14 4:28:58

Thymeleaf 项目创建及请求响应过程解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Thymeleaf 项目创建及请求响应过程解析

创建项目

1. 使用Spring Initializr创建项目

访问 https://start.spring.io/ 或使用IDE的Spring Initializr功能,选择以下依赖:

  • Spring Web
  • Thymeleaf
  • Spring Boot DevTools(可选,用于开发时热部署)

项目结构
src/main/java/com/example/ThymeleafWeb/
├── ThymeleafWebApplication.java // 主启动类
├── controller/
│ └── HomeController.java // 控制器类
├── entity/
│ └── User.java // 实体类(可选)
└── service/
└── UserService.java // 服务类(可选)

src/main/resources/
├── templates/
│ ├── index.html // Thymeleaf模板文件
│ └── user.html // 用户页面模板
├── static/
│ ├── css/
│ ├── js/
│ └── images/
└── application.properties // 配置文件

2. Maven依赖配置

在 [pom.xml](file://E:\MES\work\bladex-boot\pom.xml) 中添加必要的依赖:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency></dependencies>

3. 控制器类示例

创建一个控制器来处理请求:

@ControllerpublicclassHomeController{@GetMapping("/")publicStringhome(Modelmodel){model.addAttribute("message","Hello Thymeleaf!");return"index";}}

4. Thymeleaf模板文件

src/main/resources/templates/目录下创建index.html

<!DOCTYPEhtml><htmlxmlns:th="http://www.thymeleaf.org"><head><title>Thymeleaf Demo</title></head><body><h1th:text="${message}">Default Message</h1></body></html>

5. 应用配置

application.properties中可以配置Thymeleaf相关属性:

spring.thymeleaf.cache=false spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html

6.访问 http://localhost:8080 查看效果

关键依赖说明
你的 pom.xml 已经包含了必要的依赖:
spring-boot-starter-thymeleaf: Thymeleaf 模板引擎支持
spring-boot-starter-webmvc: Web MVC 功能
spring-boot-devtools: 开发工具,支持热部署
这样就完成了一个基本的 Java Thymeleaf 项目创建。

请求处理流程

  1. 启动Spring Boot应用

    • 通过mvn spring-boot:run启动应用
    • 内嵌Tomcat服务器在8080端口监听
  2. 请求路由

    • 浏览器发送GET请求到根路径 [/](file://E:\java\Web-API\ThymeleafWeb\pom.xml)
    • Spring MVC根据@RequestMapping@GetMapping注解匹配处理器
  3. 控制器处理

    • 请求到达标记为@Controller的控制器类
    • 执行相应的处理方法,准备模型数据
  4. 视图解析

    • 返回视图名称(如"index"
    • Thymeleaf视图解析器查找对应的模板文件
    • 默认在src/main/resources/templates/目录下查找
  5. 模板渲染

    • Thymeleaf引擎处理模板文件
    • 替换模板中的占位符(如th:text="${message}"
    • 生成最终HTML内容
  6. 响应返回

    • 将渲染后的HTML内容作为HTTP响应体返回
    • 设置适当的HTTP头信息(Content-Type等)

当前项目状态

由于你当前的 [HomeController](file://E:\java\Web-API\ThymeleafWeb\src\main\java\com\example\thymeleafweb\controller\HomeController.java#L7-L15) 类还是空的,访问http://localhost:8080会返回404错误。需要添加适当的控制器方法来处理根路径请求。

响应内容示例

如果正确配置了控制器和模板,响应将是渲染后的HTML页面,包含:

  • HTTP状态码:200 OK
  • Content-Type:text/html;charset=UTF-8
  • HTML内容:经过Thymeleaf处理的模板页面
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/12 23:37:39

错过再等一年!Dify工作流重试机制内部资料曝光(附源码级解析)

第一章&#xff1a;错过再等一年&#xff01;Dify工作流重试机制全貌揭秘在构建高可用的AI应用时&#xff0c;网络波动、模型超时或临时性服务异常难以避免。Dify 工作流引擎内置了智能重试机制&#xff0c;确保关键任务在短暂失败后仍能自动恢复执行&#xff0c;极大提升系统鲁…

作者头像 李华
网站建设 2026/3/12 21:30:33

js未授权简介

一、什么是未授权? 首先理解什么是未授权漏洞 未授权字面上理解是未获得授权,对于正常的业务来说,有些功能点需要经过登录之后才能进行,那么如果我们通过一些绕过,无需登录也可以完成此类操作,那么便是未授权访问漏洞了。 二、常见的未授权访问漏洞 常见的未授权漏洞一…

作者头像 李华
网站建设 2026/3/12 23:25:14

方舟引擎如何打破性能枷锁,铸造“超级隐私模式”的实现之道

摘要&#xff1a; 在数字时代&#xff0c;用户隐私与应用性能似乎陷入了一场零和博弈。我们渴望极致的隐私保护&#xff0c;却又无法忍受由此带来的性能下降和体验割裂。本文将跳出传统浏览器“无痕模式”的局限&#xff0c;构想一种系统级的“超级隐私模式”&#xff0c;并深入…

作者头像 李华
网站建设 2026/3/13 11:09:10

为什么你的Shiny应用越跑越慢?(多模态缓存缺失的代价)

第一章&#xff1a;为什么你的Shiny应用越跑越慢&#xff1f;当你最初部署 Shiny 应用时&#xff0c;响应迅速、交互流畅。但随着用户量增加或数据规模扩大&#xff0c;应用逐渐变得卡顿甚至无响应。性能下降通常并非单一原因所致&#xff0c;而是多个潜在瓶颈累积的结果。无效…

作者头像 李华
网站建设 2026/3/13 1:05:42

7、Linux 文件共享与查找全攻略

Linux 文件共享与查找全攻略 在 Linux 系统中,文件共享和查找是非常重要的操作,掌握这些操作可以帮助我们更好地管理和使用文件。下面将详细介绍 Linux 中文件共享和查找的相关知识和操作方法。 1. 文件共享 1.1 分组协作 在 Linux 里,组是为了实现文件共享和促进协作而…

作者头像 李华
网站建设 2026/3/13 1:07:40

从零构建加密PDF解析系统,Dify实战教程一步到位

第一章&#xff1a;从零构建加密PDF解析系统&#xff0c;Dify实战教程一步到位 在企业级文档处理场景中&#xff0c;自动化解析受密码保护的PDF文件是一项常见但复杂的需求。借助Dify平台强大的可视化工作流编排能力&#xff0c;开发者无需深入底层算法即可快速搭建具备解密与内…

作者头像 李华