创建项目
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=.html6.访问 http://localhost:8080 查看效果
关键依赖说明
你的 pom.xml 已经包含了必要的依赖:
spring-boot-starter-thymeleaf: Thymeleaf 模板引擎支持
spring-boot-starter-webmvc: Web MVC 功能
spring-boot-devtools: 开发工具,支持热部署
这样就完成了一个基本的 Java Thymeleaf 项目创建。
请求处理流程
启动Spring Boot应用
- 通过
mvn spring-boot:run启动应用 - 内嵌Tomcat服务器在8080端口监听
- 通过
请求路由
- 浏览器发送GET请求到根路径 [/](file://E:\java\Web-API\ThymeleafWeb\pom.xml)
- Spring MVC根据
@RequestMapping或@GetMapping注解匹配处理器
控制器处理
- 请求到达标记为
@Controller的控制器类 - 执行相应的处理方法,准备模型数据
- 请求到达标记为
视图解析
- 返回视图名称(如
"index") - Thymeleaf视图解析器查找对应的模板文件
- 默认在
src/main/resources/templates/目录下查找
- 返回视图名称(如
模板渲染
- Thymeleaf引擎处理模板文件
- 替换模板中的占位符(如
th:text="${message}") - 生成最终HTML内容
响应返回
- 将渲染后的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处理的模板页面