日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring Boot集成Thymeleaf模板引擎

發(fā)布時(shí)間:2024/9/30 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot集成Thymeleaf模板引擎 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Thymeleaf 模板介紹

Spring Boot 推薦使用Thymeleaf 來(lái)代替?zhèn)鹘y(tǒng)開(kāi)發(fā)中的JSP,那么什么是Thymeleaf 模板引擎呢?下面就來(lái)簡(jiǎn)單的介紹一下。

Thymeleaf 官方地址鏈接:https://www.thymeleaf.org/

1.1什么是Thymeleaf

Thymeleaf 是一款用于渲染XML/XHTML/HTML5 內(nèi)容的模板引擎。類(lèi)似JSP,Velocity,FreeMaker 等,它也可以輕易的與Spring MVC 等Web 框架進(jìn)行集成作為Web 應(yīng)用的模板引擎。

1.2為什么要使用Thymeleaf

以往我們使用JSP 頁(yè)面開(kāi)發(fā)的時(shí)候,需要開(kāi)啟服務(wù)器才能在瀏覽器訪問(wèn)到對(duì)應(yīng)的視圖資源,Thymeleaf 能夠直接在瀏覽器中打開(kāi)并正確顯示模板頁(yè)面,而不需要啟動(dòng)整個(gè)Web應(yīng)用,原因是Thymeleaf 支持HTML 原型開(kāi)發(fā),也就是說(shuō)Thymeleaf 在前后端分離上做的更好,這也是Thymeleaf 最大的一個(gè)特點(diǎn)。

Thymeleaf 提供spring標(biāo)準(zhǔn)方言和一個(gè)與 SpringMVC 完美集成的可選模塊,可以快速的實(shí)現(xiàn)表單綁定、屬性編輯器、國(guó)際化等功能。

1.3Thymeleaf 常用的語(yǔ)法規(guī)則

我們?cè)谶M(jìn)行后端開(kāi)發(fā)的時(shí)候,之所以會(huì)選擇JSP,是因?yàn)镴SP 中提供了很多實(shí)用的標(biāo)簽,比如判斷、取值、遍歷等。作為Spring Boot 推薦使用的Thymeleaf 當(dāng)然也提供了很多實(shí)用的標(biāo)簽。

變量

<!-- ${today} 中的值,會(huì)覆蓋標(biāo)簽中的值 --> <p>Today is: <span th:text="${today}">這里顯示日期</span>.</p>

假設(shè)today 的值為2018年3月36日,那么渲染結(jié)果為:<p>Today is: 2018年3月36日.</p>??梢?jiàn)Thymeleaf 的基本變量和JSP 一樣,都使用${.}表示獲取變量的值。

URL

<!-- 絕對(duì)路徑 --> <a th:href="@{http://www.thymeleaf.org}">Thymeleaf</a> <!-- 相對(duì)路徑 @{...}表達(dá)式中可以通過(guò){orderId}訪問(wèn)Context中的orderId變量 --> <a href="details.html" th:href="@{/order/details(orderId=${o.id})}">view</a>

URL 在Web 應(yīng)用模板中占據(jù)著十分重要的地位,需要特別注意的是Thymeleaf 對(duì)于URL 的處理是通過(guò)語(yǔ)法@{...} 來(lái)處理的。Thymeleaf支持絕對(duì)路徑URL 也支持相對(duì)路徑的URL。

循環(huán)

<table><tr><th>NAME</th><th>PRICE</th><th>IN STOCK</th></tr><tr th:each="prod : ${prods}"><td th:text="${prod.name}">Onions</td><td th:text="${prod.price}">2.41</td><td th:text="${prod.inStock}? #{true} : #{false}">yes</td></tr></table>

可以看到,需要在被循環(huán)渲染的元素(這里是)中加入th:each標(biāo)簽,其中th:each="prod : ${prods}"意味著對(duì)集合變量prods進(jìn)行遍歷,將當(dāng)前集合中的值賦給prod。

判斷

<a th:if="${myself=='yes'}" > Hi </a> <a th:unless=${session.user != null} th:href="@{/login}" >Login</a>

Thymeleaf 中使用th:if和th:unless屬性進(jìn)行條件判斷,上面的例子中,<a>標(biāo)簽只有在th:if中條件成立時(shí)才顯示。th:unless于th:if恰好相反,只有表達(dá)式中的條件不成立,才會(huì)顯示其內(nèi)容。

PS

上面主要介紹一些比較常用的標(biāo)簽,想要學(xué)習(xí)更多的標(biāo)簽,可以去查看對(duì)應(yīng)的官方文檔。

Thymeleaf3.0 官方使用手冊(cè)鏈接:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html

二、在Spring Boot 中使用Thymeleaf

Thymeleaf 在Spring Boot 中的使用規(guī)則

Spring Boot 實(shí)現(xiàn)自動(dòng)配置的時(shí)候已經(jīng)對(duì)Thymeleaf 進(jìn)行了支持,關(guān)于其中的一些規(guī)則,我們可以在ThymeleafProperties中進(jìn)行查看,如下:

ThymeleafProperties類(lèi)中已經(jīng)對(duì)Thymeleaf 進(jìn)行了前綴與后綴設(shè)置,所以我們只要在classpath:/templates/目錄下創(chuàng)建×××.html,Thymeleaf 就可以幫我們渲染頁(yè)面了。

在Spring Boot 引入Thymeleaf 的starter

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

編寫(xiě)控制器代碼

@RequestMapping("/hello")public String thymeleafTest(Map<String, String> map){map.put("username", "Jas");return "index";}

在classpath:/templates/下新建index.html

<!DOCTYPE html> <!-- 引入thymeleaf 的名稱(chēng)空間 --> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><h2>Hello <span th:text="${username}">這里用于顯示用戶(hù)名</span></h2> </body> </html>

在瀏覽器進(jìn)行測(cè)試

通過(guò)上面的結(jié)果我們可以看出${username}中的值覆蓋了原來(lái)的值,進(jìn)行數(shù)據(jù)展示的頁(yè)面不再是JSP而是HTML,所以在不啟動(dòng)服務(wù)器的情況下頁(yè)面也是可以進(jìn)行訪問(wèn)的,在服務(wù)器啟動(dòng)情況下完成頁(yè)面渲染,更好的支持前后端分離,因此Thymeleaf 完全是可以代替JSP 的。

三、總結(jié)

這篇博文簡(jiǎn)單的寫(xiě)了一些關(guān)于Thymeleaf 模板引擎相關(guān)的知識(shí),如果想要了解更多關(guān)于Thymeleaf 模板引擎方面的知識(shí),可以在官方文檔中深入了解。希望本篇博文能夠?yàn)槟闾峁┮恍椭?/p>

參考資料:
https://www.tianmaying.com/tutorial/using-thymeleaf
https://zhuanlan.zhihu.com/p/24965387?refer=dreawer

總結(jié)

以上是生活随笔為你收集整理的Spring Boot集成Thymeleaf模板引擎的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。