Java SpringBoot模板引擎之 Thymeleaf入門詳解
模板引擎簡(jiǎn)介
如果我們直接用純靜態(tài)頁面方式,必然會(huì)給開發(fā)帶來很大麻煩,所以springboot推薦使用模板引擎,其實(shí)jsp就是一個(gè)模板引擎,還有用的比較多的freemarker,包括SpringBoot給我們推薦的Thymeleaf!模板引擎的本質(zhì)思想如下圖:

引入Thymeleaf模板引擎
Thymeleaf 官網(wǎng):Thymeleaf

Spring官方文檔:
https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/reference/htmlsingle/#using-boot-starter
<!--thymeleaf-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Maven自動(dòng)下載jar包,下圖試maven下載的東西;

分析Thymeleaf模板引擎
首先按照SpringBoot的自動(dòng)配置原理來看一下我們這個(gè)Thymeleaf的自動(dòng)配置規(guī)則,再按照這個(gè)規(guī)則,我們進(jìn)行使用??梢韵热タ纯碩hymeleaf的自動(dòng)配置類:ThymeleafProperties

我們可以在配置文件看到默認(rèn)的前綴和后綴!
我們只需要把我們的html頁面放在類路徑下的templates下,thymeleaf就可以幫我們自動(dòng)渲染。
測(cè)試Thymeleaf模板引擎
1、編寫一個(gè)TestController

2、編寫一個(gè)測(cè)試頁面 test.html 放在 templates 目錄下

3、啟動(dòng)項(xiàng)目請(qǐng)求測(cè)試

4、結(jié)論
只要需要使用thymeleaf,只需要導(dǎo)入對(duì)應(yīng)的依賴就可以了,然后將html放在templates的目錄下即可
Thymeleaf入門:
我們可以查看下Thymeleaf 官網(wǎng):https://www.thymeleaf.org/
簡(jiǎn)單練習(xí):查出一些數(shù)據(jù),在頁面中展示
1、修改測(cè)試請(qǐng)求,增加數(shù)據(jù)傳輸
@Controller
public class TestController {
@RequestMapping("/t1")
public String test1(Model model){
//存入數(shù)據(jù)
model.addAttribute("msg","Hello,Thymeleaf");
//classpath:/templates/test.html
return "test";
}
}
2、使用thymeleaf
我們要使用thymeleaf,需要在html文件中導(dǎo)入命名空間的約束,方便提示。
xmlns:th=http://www.thymeleaf.org
3、我們?nèi)ゾ帉懴虑岸隧撁?/h3>
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>九陽真經(jīng)---龍弟</title>
</head>
<body>
<h1>測(cè)試頁面</h1>
<!--th:text就是將div中的內(nèi)容設(shè)置為它指定的值-->
<div th:text="${msg}"></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>九陽真經(jīng)---龍弟</title>
</head>
<body>
<h1>測(cè)試頁面</h1>
<!--th:text就是將div中的內(nèi)容設(shè)置為它指定的值-->
<div th:text="${msg}"></div>
</body>
</html>
4、啟動(dòng)測(cè)試!

thymeleaf語法學(xué)習(xí)
1、使用任意的 th:attr 來替換Html中原生屬性的值!

2、表達(dá)式語法:

練習(xí)測(cè)試
@Controller
public class TestController {
@RequestMapping("/t2")
public String test2(Map<String,Object> map){
//存入數(shù)據(jù)
map.put("msg","<h1>Hello,SpringBoot</h1>");
map.put("users", Arrays.asList("dragon","longdi"));
//classpath:/templates/test.html
return "test";
}
}
2、測(cè)試頁面取出數(shù)據(jù)
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>九陽真經(jīng)---龍弟</title>
</head>
<body>
<h1>測(cè)試頁面</h1>
<div th:text="${msg}"></div>
<!--不轉(zhuǎn)義-->
<div th:utext="${msg}"></div>
<!--遍歷數(shù)據(jù)-->
<!--th:each每次遍歷都會(huì)生成當(dāng)前這個(gè)標(biāo)簽-->
<h4 th:each="user :${users}" th:text="${user}"></h4>
<hr>
<!--行內(nèi)寫法-->
<h4 th:each="user:${users}">[[${user}]]</h4>
</body>
</html>
3、啟動(dòng)項(xiàng)目測(cè)試!

總結(jié):
由于thymeleaf很多語法樣式,我們現(xiàn)在學(xué)了也會(huì)忘記,因此,在學(xué)習(xí)過程中,需要使用什么,根據(jù)官方文檔來查詢,所以要熟練使用官方文檔!
到此這篇關(guān)于Java SpringBoot模板引擎之 Thymeleaf入門詳解的文章就介紹到這了,更多相關(guān)Java SpringBoot Thymeleaf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java程序中指定某個(gè)瀏覽器打開的實(shí)現(xiàn)方法
最近工作中遇到一個(gè)需求,是要利用java打開指定瀏覽器,整理后發(fā)現(xiàn)有四種解決的方法,所以想著分享出來,下面這篇文章主要給大家介紹了java程序中指定某個(gè)瀏覽器打開的實(shí)現(xiàn)方法,,需要的朋友可以參考下。2017-03-03
關(guān)于Assert.assertEquals報(bào)錯(cuò)的問題及解決
這篇文章主要介紹了關(guān)于Assert.assertEquals報(bào)錯(cuò)的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
Java線程池中的各個(gè)參數(shù)如何合理設(shè)置
這篇文章主要介紹了Java線程池中的各個(gè)參數(shù)如何合理設(shè)置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
JavaWeb 中Cookie實(shí)現(xiàn)記住密碼的功能示例
cookie是一種WEB服務(wù)器通過瀏覽器在訪問者的硬盤上存儲(chǔ)信息的手段。Cookie的目的就是為用戶帶來方便,為網(wǎng)站帶來增值。這篇文章主要介紹了JavaWeb 中Cookie實(shí)現(xiàn)記住密碼的功能示例,需要的朋友可以參考下2017-06-06
Java 注冊(cè)時(shí)發(fā)送激活郵件和激活的實(shí)現(xiàn)示例
這篇文章主要介紹了Java 注冊(cè)時(shí)發(fā)送激活郵件和激活的實(shí)現(xiàn)示例的相關(guān)資料,需要的朋友可以參考下2017-07-07
spring-boot項(xiàng)目啟動(dòng)遲緩異常排查解決記錄
這篇文章主要為大家介紹了spring-boot項(xiàng)目啟動(dòng)遲緩異常排查解決記錄,突然在本地啟動(dòng)不起來了,表象特征就是在本地IDEA上運(yùn)行時(shí),進(jìn)程卡住也不退出,應(yīng)用啟動(dòng)時(shí)加載相關(guān)組件的日志也不輸出2022-02-02

