Springboot+Thymeleaf配置与使用

本文介绍如何在Spring Boot项目中配置并使用Thymeleaf模板引擎,包括配置application.properties文件、添加依赖、创建Controller及HTML文件等步骤,并提供了一个简单的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Springboot+Thymeleaf配置与使用

前言

Springboot默认是不支持JSP的,默认使用thymeleaf模板引擎。所以这里介绍一下springboot使用Thymeleaf的实例以及遇到的问题。

配置与使用

1.在application.properties文件中增加Thymeleaf模板的配置。
#thymelea模板配置
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**

说明一下,这些配置不是必须的,如果配置了会覆盖默认的。
在开发时建议将spring.thymeleaf.cache设置为false,否则会有缓存,导致页面没法及时看到更新后的效果。
比如你修改了一个文件,已经update到tomcat,但刷新页面还是之前的页面,就是因为缓存引起的。

2.在pom.xml中添加thymeleaf的依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
3.编写一个测试的Controller
@RequestMapping(value = "/greeting")
public ModelAndView test(ModelAndView mv) {
    mv.setViewName("/greeting");
    mv.addObject("title","欢迎使用Thymeleaf!");
    return mv;
}

可以看到,Controller与普通的SpringMVC的Controller无异。

4.编写greeting.html

spring-boot项目静态文件目录:/src/java/resources/static
spring-boot项目模板文件目录:/src/java/resources/templates
所以greeting.html文件在/src/java/resources/templates下。

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" >
<head>
    <title>Getting Started: Serving Web Content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link th:href="@{/css/1.css}" rel="stylesheet"/>
</head>
<body>
<p th:text="'Hello, ' + ${title}" /><br/>

<script th:src="@{/js/jquery/1.11.0/jquery.js}"></script>
<script>
    $(function(){
       alert("page load finish.");
    });
</script>
</body>
</html>
5.运行效果

这里写图片描述

这里这是一个基本的使用示例,更多Thymeleaf的用法请自行搜索。

<think>嗯,用户想了解Spring Boot和Thymeleaf的基本配置使用。好的,我需要先理清楚这两个技术的基本概念以及它们如何结合使用。首先,Spring Boot是一个用于简化Spring应用开发的框架,可以快速搭建项目,而Thymeleaf是一个服务器端的Java模板引擎,适合用于Web应用中的视图层。 首先,用户可能需要知道如何创建一个Spring Boot项目并集成Thymeleaf。我应该从项目创建开始,比如使用Spring Initializr,添加Thymeleaf依赖。然后介绍配置文件,比如application.properties中的相关设置,比如关闭缓存,这样开发时修改模板不用重启。 接下来是基本的使用步骤,比如创建Controller,编写Thymeleaf模板,如何传递数据,以及常用的语法。比如在HTML中使用th:text,表单处理,迭代循环等。可能需要给出代码示例,这样用户更容易理解。 还要注意Thymeleaf的默认目录是classpath:/templates/,所以需要说明HTML文件应该放在哪里。另外,静态资源如CSS、JS通常放在static目录下,这也是需要提到的点。 用户可能遇到的问题比如模板不生效,或者静态资源无法加载,这时候可能需要检查配置是否正确,路径是否正确。另外,Thymeleaf的语法可能有些用户不熟悉,需要简单举例说明常用标签和表达式。 可能还需要提到Thymeleaf的布局功能,比如使用th:fragment和th:replace来复用页面片段,这对实际项目开发很有帮助,但如果是基本配置使用,可能不需要深入,简单提一下或者作为扩展内容。 还有,是否需要涉及MVC结构?比如Controller到View的数据传递,Model的使用,表单绑定等。这些都是基本使用中常见的部分,应该涵盖。 总结一下,回答的结构应该是:先介绍Spring Boot和Thymeleaf,然后创建项目,添加依赖,配置,接着是Controller和模板的编写,数据传递,常用语法,最后可能给出一个简单示例和常见问题。确保步骤清晰,代码示例正确,并且解释到位,避免用户在实际操作时遇到障碍。</think>以下是 Spring Boot 整合 Thymeleaf 的基本配置使用指南,分步骤说明: --- ### **一、环境准备** 1. **创建 Spring Boot 项目** 通过 [Spring Initializr](https://start.spring.io/) 创建项目,勾选: - **Spring Web**(Web 支持) - **Thymeleaf**(模板引擎依赖) 2. **项目结构** 生成的标准目录结构: ``` src ├─main │ ├─java │ │ └─com/example/demo │ │ ├─controller │ │ └─DemoApplication.java │ └─resources │ ├─static # 存放静态资源(CSS/JS/图片) │ ├─templates # 存放 Thymeleaf 模板 │ └─application.properties ``` --- ### **二、基础配置** 在 `application.properties` 中添加: ```properties # 开启模板缓存(生产环境建议true,开发时设为false) spring.thymeleaf.cache=false # 模板编码 spring.thymeleaf.encoding=UTF-8 # 模板后缀(默认.html) spring.thymeleaf.suffix=.html # 模板路径(默认classpath:/templates/) spring.thymeleaf.prefix=classpath:/templates/ ``` --- ### **三、基础使用** #### 1. **编写 Controller** ```java @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model) { // 向模板传递数据 model.addAttribute("message", "Hello Thymeleaf!"); model.addAttribute("list", Arrays.asList("Java", "Python", "C++")); return "hello"; // 对应 templates/hello.html } } ``` #### 2. **创建 Thymeleaf 模板(hello.html)** ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Thymeleaf Demo</title> </head> <body> <!-- 显示普通文本 --> <h1 th:text="${message}"></h1> <!-- 条件判断 --> <div th:if="${not #lists.isEmpty(list)}"> <!-- 循环遍历 --> <ul> <li th:each="item : ${list}" th:text="${item}"></li> </ul> </div> <!-- 链接处理(自动生成上下文路径) --> <a th:href="@{/home}">返回首页</a> </body> </html> ``` --- ### **四、常用语法** #### 1. **变量表达式 `${}`** ```html <p th:text="${user.name}"></p> ``` #### 2. **链接表达式 `@{}`** ```html <link th:href="@{/css/style.css}" rel="stylesheet"> ``` #### 3. **条件判断 `th:if` / `th:unless`** ```html <div th:if="${user.isAdmin}">管理员权限</div> ``` #### 4. **循环遍历 `th:each`** ```html <tr th:each="user : ${users}"> <td th:text="${user.id}"></td> </tr> ``` #### 5. **表单绑定** Controller: ```java @PostMapping("/submit") public String submitForm(@ModelAttribute User user) { // 处理表单数据 return "result"; } ``` 模板: ```html <form th:action="@{/submit}" method="post"> <input type="text" th:name="username"> <button type="submit">提交</button> </form> ``` --- ### **五、静态资源处理** 将 CSS/JS 文件放在 `resources/static` 目录下: ```html <!-- 引用静态资源 --> <script th:src="@{/js/main.js}"></script> <link th:href="@{/css/style.css}" rel="stylesheet"> ``` --- ### **六、布局模板(进阶)** 通过 `th:fragment` 和 `th:replace` 实现页面复用: 1. **定义公共片段(common.html)** ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <th:block th:fragment="head"> <meta charset="UTF-8"> <title>公共标题</title> </th:block> </head> </html> ``` 2. **引用片段** ```html <head th:replace="common :: head"></head> ``` --- ### **七、常见问题** 1. **模板不生效** - 检查文件是否放在 `templates` 目录。 - 确保 Controller 返回的视图名模板文件名一致。 2. **静态资源404** - 确认文件路径正确(如 `static/css/style.css` 对应 `@{/css/style.css}`)。 3. **Thymeleaf 语法不解析** - 检查 HTML 是否添加命名空间:`xmlns:th="http://www.thymeleaf.org"`。 --- 通过以上步骤,即可快速上手 Spring Boot + Thymeleaf 的基础开发!
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值