当前位置: 首页 > news >正文

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处理的模板页面
http://www.cnnetsun.cn/news/91508.html

相关文章:

  • 为什么顶尖团队都在用Dify 1.7.0做音频转换?真相令人震惊
  • 【Dify 1.7.0音频转文字黑科技】:3大核心升级揭秘,效率提升90%的秘诀
  • 如何30分钟完成一个AI驱动的工作流?Dify可视化编辑实操揭秘
  • 构建失败率降低80%?量子计算镜像缓存优化,你不得不看的关键步骤
  • 从0到1搭系统,这5款免费低代码平台帮你省时间
  • 【私有化Dify备份策略全解析】:掌握企业级数据安全的5大核心步骤
  • UnityXR 在PC端HTCVive或者其它头盔设备中左右眼一个正常一个不正常解决办法
  • 浅识:GaussDB的WAL日志
  • 【空间转录组功能富集分析全攻略】:掌握R语言高效解析空间基因表达的5大核心技巧
  • 进程相关的函数
  • 12 款 .NET PDF库,到底该选哪个库?
  • 从入门到精通,R Shiny多用户权限管理系统搭建全记录
  • Dify版本回滚从入门到精通:一套被验证的标准化操作流程
  • Frdbio®小鼠抗体纯化试剂盒
  • 告别冗余加载:构建高效量子计算运行时环境的6个不可忽视步骤
  • Agent服务扩展难题,如何在Docker Compose中实现无缝横向扩容?
  • PageAdmin:为企业政务提供产品及解决方案
  • 国产数据库技术学习心得:DM 数据库从实操到应用
  • Docker Compose Agent服务扩展全攻略(从入门到高可用部署)
  • R Shiny模块热加载技术揭秘:实现无缝更新,用户零感知(企业级方案曝光)
  • 【加密PDF解析终极指南】:Dify密钥管理核心技术揭秘与实战应用
  • 节能又达标!基于Linux的污水自动控制方案
  • 企微 SCRM 服务天花板:微伴四级支持,AI 陪跑至盈利
  • PyTorch训练损失异常?LobeChat给出诊断建议
  • 医药类电商系统开发公司有哪些?
  • 为什么90%的企业还没意识到Dify解密算法对文档安全的颠覆性威胁?
  • 为什么你的Vercel AI SDK在Docker中无法读取环境变量?深度剖析加载机制盲区
  • Dify权限验证系统解析:3步完成PDF加密与访问控制
  • 找不到符号
  • 300套伺服电机步进调速电机SolidWorks三维3D模型图结构库合集