Java基礎(chǔ)總結(jié)之Thymeleaf詳解
一、Thymeleaf語法
標(biāo)簽
在HTML頁面上使用Thymeleaf標(biāo)簽,Thymeleaf 標(biāo)簽?zāi)軌騽討B(tài)地替換掉靜態(tài)內(nèi)容,使頁面動態(tài)展示。為了大家更直觀的認(rèn)識Thymeleaf,下面展示一個在HTML文件中嵌入了Thymeleaf的頁面文件,示例代碼如下:
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" media="all" href="../../css/gtvg.css" rel="external nofollow" th:href="@{/css/gtvg.css}" rel="external nofollow" /> <title>Title</title> </head> <body> <p th:text="${hello}">歡迎進(jìn)入Thymeleaf的學(xué)習(xí)</p> </body> </html>
thymelef常用標(biāo)簽
標(biāo)簽 | 說明 |
th:insert | 布局標(biāo)簽,替換內(nèi)容到引入的文件 |
th:replace | 頁面片段包含(類似JSP中的include標(biāo)簽) |
th:each | 元素遍歷(類似JSP中的c:forEach標(biāo)簽) |
th:if | 條件判斷,如果為真 |
th:unless | 條件判斷,如果為假 |
th:switch | 條件判斷,進(jìn)行選擇性匹配 |
th:case | 條件判斷,進(jìn)行選擇性匹配 |
th:value | 屬性值修改,指定標(biāo)簽屬性值 |
th:href | 用于設(shè)定鏈接地址 |
th:src | 用于設(shè)定鏈接地址 |
th:text | 用于指定標(biāo)簽顯示的文本內(nèi)容 |
標(biāo)準(zhǔn)表達(dá)式
說明 | 表達(dá)式語法 |
變量表達(dá)式 | ${…} |
選擇變量表達(dá)式 | *{…} |
消息表達(dá)式 | #{…} |
鏈接URL表達(dá)式 | @{…} |
片段表達(dá)式 | ~{…} |
1.1 變量表達(dá)式${…}
主要用于獲取上下文中的變量值,示例代碼如下:
<p th:text="${title}">這是標(biāo)題</p>
Thymeleaf為變量所在域提供了一些內(nèi)置對象,具體如下所示
# ctx:上下文對象 # vars:上下文變量 # locale:上下文區(qū)域設(shè)置 # request:(僅限Web Context)HttpServletRequest對象 # response:(僅限Web Context)HttpServletResponse對象 # session:(僅限Web Context)HttpSession對象 # servletContext:(僅限Web Context)ServletContext對象
假設(shè)要在Thymeleaf模板引擎頁面中動態(tài)獲取當(dāng)前國家信息,可以使用
#locale內(nèi)置對象,示例代碼如下
The locale country is: <span th:text="${#locale.country}">US</span>
1.2 選擇變量表達(dá)式*{…}
和變量表達(dá)式用法類似,一般用于從被選定對象而不是上下文中獲取屬性值,如果沒有選定對象,則和變量表達(dá)式一樣,示例代碼如下
<div th:object="${book}"> <p>titile: <span th:text="*{title}">標(biāo)題</span>.</p> </div>
*{title} 選擇變量表達(dá)式獲取當(dāng)前指定對象book的title屬性值。
1.3 消息表達(dá)式 #{…}
消息表達(dá)式#{…}主要用于Thymeleaf模板頁面國際化內(nèi)容的動態(tài)替換和展示,使用消息表達(dá)式#{…}進(jìn)行國際化設(shè)置時,還需要提供一些國際化配置文件。
1.4 鏈接表達(dá)式 @{…}
鏈接表達(dá)式@{…}一般用于頁面跳轉(zhuǎn)或者資源的引入,在Web開發(fā)中占據(jù)著非常重要的地位,并且使用也非常頻繁
<a th:href="@{http://localhost:8080/order/details(orderId=${o.id})}" rel="external nofollow" >view</a> <a th:href="@{/order/details(orderId=${o.id},pid=${p.id})}" rel="external nofollow" >view</a>
鏈接表達(dá)式@{…}分別編寫了絕對鏈接地址和相對鏈接地址。
在有參表達(dá)式中,需要按照@{路徑(參數(shù)名稱=參數(shù)值,參數(shù)名稱=參數(shù)值…)}的形式編寫,同時該參數(shù)的值可以使用變量表達(dá)式來傳遞動態(tài)參數(shù)值
1.5 片段表達(dá)式 ~{…}
片段表達(dá)式~{…}用來標(biāo)記一個片段模板,并根據(jù)需要移動或傳遞給其他模板。其中,最常見的用法是使用th:insert或th:replace屬性插入片段
<div th:insert="~{thymeleafDemo::title}"></div>
thymeleafDemo為模板名稱,Thymeleaf會自動查找“/resources/templates/”目錄下的thymeleafDemo模板,title為片段名稱
二、基本使用
2.1 Thymeleaf模板基本配置
首先 在Spring Boot項(xiàng)目中使用Thymeleaf模板,首先必須保證引入Thymeleaf依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
其次,在全局配置文件中配置Thymeleaf模板的一些參數(shù)。一般Web項(xiàng)目都會使用下列配置
spring.thymeleaf.cache = true #啟用模板緩存 spring.thymeleaf.encoding = UTF_8 #模板編碼 spring.thymeleaf.mode = HTML5 #應(yīng)用于模板的模板模式 spring.thymeleaf.prefix = classpath:/templates/ #指定模板頁面存放路徑 spring.thymeleaf.suffix = .html #指定模板頁面名稱的后綴
上述配置中:
spring.thymeleaf.cache表示是否開啟Thymeleaf模板緩存,默認(rèn)為true,在開發(fā)過程中通常會關(guān)閉緩存,保證項(xiàng)目調(diào)試過程中數(shù)據(jù)能夠及時響應(yīng);
spring.thymeleaf.prefix指定了Thymeleaf模板頁面的存放路徑,默認(rèn)為classpath:/templates/;
spring.thymeleaf.suffix指定了Thymeleaf模板頁面的名稱后綴,默認(rèn)為.html
到此這篇關(guān)于Java基礎(chǔ)總結(jié)之Thymeleaf模板的文章就介紹到這了,更多相關(guān)Java Thymeleaf模板內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot利用aop實(shí)現(xiàn)接口異步(進(jìn)度條)的全過程
我們在開發(fā)中,調(diào)用第三方接口時,往往是提交數(shù)據(jù),要異步去獲取數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于springboot利用aop實(shí)現(xiàn)接口異步(進(jìn)度條)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01Java使用Math.random()結(jié)合蒙特卡洛方法計算pi值示例
這篇文章主要介紹了Java使用Math.random()結(jié)合蒙特卡洛方法計算pi值的方法,簡單說明了結(jié)合具體實(shí)例蒙特卡洛方法的原理,并結(jié)合具體實(shí)例形式分析了java使用蒙特卡洛方法計算PI值的操作技巧,需要的朋友可以參考下2017-09-09java 方法泛型入?yún)和String的重載關(guān)系詳解
這篇文章主要介紹了java 方法泛型入?yún)和String的重載關(guān)系詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02MySQL查詢字段實(shí)現(xiàn)字符串分割split功能的示例代碼
本文主要介紹了MySQL查詢字段實(shí)現(xiàn)字符串分割split功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01spring注解識別一個接口的多個實(shí)現(xiàn)類方法
下面小編就為大家?guī)硪黄猻pring注解識別一個接口的多個實(shí)現(xiàn)類方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04淺析RxJava處理復(fù)雜表單驗(yàn)證問題的方法
這篇文章主要介紹了RxJava處理復(fù)雜表單驗(yàn)證問題的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06JavaWeb實(shí)現(xiàn)文件上傳下載功能實(shí)例詳解
這篇文章主要介紹了JavaWeb中的文件上傳和下載功能的實(shí)現(xiàn),在開發(fā)中,文件上傳和下載功能是非常常用的功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11