Thymeleaf简介
什么是Thymeleaf
Thymeleaf是一个跟Velocity、FeMarker类似的模板引擎,它可以完全替代JSP。相较与其他的模板引学,它有如下三个极吸引人的特点Thymeleaf在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持html原型,然后在html标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释html时会忽略未定义的标签属性,所以thymeleaf的模板可以静态地运行;当有数据返回到页面时,Thymeleaf标签会动态地替换掉静态内容,使页面动态显示。
Thymeleaf开箱即用的特性。它提供标准和Sring标准两种方言,可以直接套用模板实现JSTL、OGNL表达式效果,避免每天套模板、改JSTL、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。
Thymeleaf提供Sring标准方言和一个与SringMVC完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、际化等功能。为什么需要Thymeleaf
如果希望以Jar形式发布模块则尽量不要使用JSP相关知识,这是因为JSP在内嵌的Servlet容器上运行有一些问题(内嵌Tomcat、Jetty不支持Jar形式运行JSP,Undertow不支持JSP)。
SringBoot中推荐使用Thymeleaf作为模板引擎,因为Thymeleaf提供了完美的SringMVC支持,SringBoot提供了大呈模板引擎,包括:FMarker
Groovy
Thymeleaf
Velocity
Beetl第一个Thymeleaf页面
引入依赖
主要增加sring-boot-starter-thymeleaf和nekohtml这两个依赖sring-boot-starter-thymeleaf:Thymeleaf自动配置
nekohtml:允许使用非严格的HTML语法<!--htts:mvnository.comrtifactorg.sringframework.bootsring-boot-starter-thymeleaf-->
<deendency>
<grouId>org.sringframework.boot<grouId>
<artifactId>sring-boot-starter-thymeleaf<rtifactId>
<version>2.2.2.RELEASE<version>
<deendency>
<!--htts:mvnository.comrtifactnet.sourceforge.nekohtmlnekohtml-->
<deendency>
<grouId>net.sourceforge.nekohtml<grouId>
<artifactId>nekohtml<rtifactId>
<version>1.9.14<version>
<deendency>
server:
ort:8082
sring:
acation:
name:hello-sring-boot
thymeleaf:
cache:false
mode:HTML
encoding:UTF-8
servlet:
content-tye:texthtml
<!doctyehtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<metaname="viewort"
content="width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">
<metahtt-equiv="X-UA-Comatible"content="ie=edge">
<title>第一个Thymeleaf页面<title>
<head>
<body>
<th:text="${name}">ww<>
<body>
<html>
ackagecom.kcbg.hellosringboot.controller;imortorg.sringframework.steotye.Controller;
imortorg.sringframework.ui.Model;
imortorg.sringframework.web.bind.annotation.GetMaing;**
*@rogram:hello-sring-boot
*@descrition:第一个Thymeleaf页面
*@author:MW
*@cate:2020-06-1221:44
**
@Controller
ubcclassThymeleafController{
@GetMaing("index")
ubcStringindex(Modelmodel){
model.addAttribute("name","MW");
turn"index";
}
}