文章目录:
2.2 在pom.xml文件中会自动添加SpringBoot集成Thymeleaf的起步依赖
1.认识 Thymeleaf
Thymeleaf是一个流行的模板引擎,该模板引擎采用 Java 语言开发。
模板引擎是一个技术名词,是跨领域跨平台的概念,在 Java 语言体系下有模板引擎,在 C#、PHP 语言体系下也有模板引擎,甚至在 JavaScript 中也会用到模板引擎技术,Java 生态下的模板引擎有 Thymeleaf 、Freemaker、Velocity、Beetl(国产)等。
Thymeleaf对网络环境不存在严格的要求,既能用于 Web 环境下,也能用于非 Web 环境下。在非 Web 环境下,他能直接显示模板上的静态数据;在 Web 环境下,它能像 Jsp 一样从后台接收数据并替换掉模板上的静态数据。它是基于 HTML 的,以 HTML 标签为载体,Thymeleaf 要寄托在 HTML 标签下实现。
SpringBoot集成了 Thymeleaf 模板技术,并且 Spring Boot 官方也推荐使用 Thymeleaf 来替代 JSP 技术,Thymeleaf 是另外的一种模板技术,它本身并不属于 Spring Boot,Spring Boot只是很好地集成这种模板技术,作为前端页面的数据展示,在过去的 Java Web 开发中,我们往往会选择使用 Jsp 去完成页面的动态渲染,但是 jsp 需要翻译编译运行,效率低。
Thymeleaf的官方网站:http://www.thymeleaf.org
Thymeleaf官方手册:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html
2.详细步骤
2.1 创建一个SpringBoot项目
2.2 在pom.xml文件中会自动添加SpringBoot集成Thymeleaf的起步依赖
<!-- SpringBoot框架集成Thymeleaf的起步依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
2.3 在核心配置文件中添加以下内容
# thymeleaf 页面的缓存开关,默认 true 开启缓存 # 建议在开发阶段关闭 thymeleaf 页面缓存,目的实时看到页面 spring.thymeleaf.cache=false #thymeleaf 模版前缀,默认可以不写 spring.thymeleaf.prefix=classpath:/templates/ #thymeleaf 模版后缀,默认可以不写 spring.thymeleaf.suffix=.html
2.4 写一个Controller控制层
package com.songzihao.springboot.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; /** * */ @Controller public class UserController { @RequestMapping(value = "/message") public String message(Model model) { model.addAttribute("data","SpringBoot框架集成Thymeleaf模板引擎"); return "message"; } }
2.5 写一个html页面
HTML页面的<html>元素中加入以下属性:<html xmlns:th="http://www.thymeleaf.org">
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div th:text="${data}"></div> <h2 th:text="${data}"></h2> <p th:text="${data}"></p> <span th:text="${data}"></span> </body> </html>
package com.songzihao.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
在页面的源代码中,可以看到在html文件中,通过 th:text 获取到的数据是存放在标签体中的。
注意: Springboot 用使用 thymeleaf 作为视图展示,约定将模板文件放置在src/main/resource/templates目录下,静态资源放置在src/main/resource/static 目录下。