先来说说什么是模板引擎,我们以前接触过的jsp,freemarker都是模板引擎,模板引擎其实就是一个一个模板+一些数据然后渲染成我们想要的页面;
1、 Thymeleaf 概述
1.1、Thymeleaf是什么?
Thymeleaf是一个模板引擎,主要用于编写动态页面。
1.2、 Thymeleaf的作用
问题:动态页面技术已经有JSP,为什么还要用Thymeleaf?
主要原因包括以下几点:
- 使用模块引擎来编写动态页面,让开发人员无法在页面上编写 Java 代码,使得java代码和前端代码绝对的分离。
- SpringBoot默认整合Thymeleaf,不需要任何配置直接整合成功,打jar包发布不需要做任何配置。
- Thymeleaf相对于其他的模板引擎(如:Freemaker、velocity),有强大的工具支持。
- 相对于Jsp页面,执行效率高。
总结:所有JSP可以使用的地方,Thymeleaf都可以使用,并根据Thymeleaf的优势,可以得出结论:Thymeleaf的作用就是取代JSP。
SpringBoot推荐使用Thymeleaf,语法更简单,功能更强大!
2、 Thymeleaf的使用
2.1、引入thymeleaf;
方式一:在pom.xml中手动添加
<dependency>
<!-- 默认版本为2.1.6-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<properties>
<!--切换thymeleaf版本-->
<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
<!-- 布局功能的支持程序 thymeleaf3主程序 layout2以上版本 -->
<!-- thymeleaf2 layout1-->
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
</properties>
方式二:在创建项目的时候直接勾选
2.2、Thymeleaf使用
可以看到读取的路径都是classpath:/templetes/,我们只需要把html放在templetes下,thymeleaf就能自动渲染
1)、在Controller下创建helloController类
package com.example.springbootweb.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class helloController {
@RequestMapping("/hello")
public String hello(){
return "login";
}
}
2)、在resources/templates目录创建一个login.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div >
<h1>HelloWorld!!!</h1>
</div>
</body