Java基礎(chǔ)總結(jié)之Thymeleaf詳解
標(biāo)簽
在HTML頁(yè)面上使用Thymeleaf標(biāo)簽,Thymeleaf 標(biāo)簽?zāi)軌騽?dòng)態(tài)地替換掉靜態(tài)內(nèi)容,使頁(yè)面動(dòng)態(tài)展示。為了大家更直觀的認(rèn)識(shí)Thymeleaf,下面展示一個(gè)在HTML文件中嵌入了Thymeleaf的頁(yè)面文件,示例代碼如下:
<!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='http://m.propowerdrill.cn/css/gtvg.css' rel='external nofollow' th:href='http://m.propowerdrill.cn/bcjs/@{/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)簽 說(shuō)明 th:insert 布局標(biāo)簽,替換內(nèi)容到引入的文件 th:replace 頁(yè)面片段包含(類(lèi)似JSP中的include標(biāo)簽) th:each 元素遍歷(類(lèi)似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á)式
說(shuō)明 表達(dá)式語(yǔ)法 變量表達(dá)式 ${…} 選擇變量表達(dá)式 *{…} 消息表達(dá)式 #{…} 鏈接URL表達(dá)式 @{…} 片段表達(dá)式 ~{…} 1.1 變量表達(dá)式${…}主要用于獲取上下文中的變量值,示例代碼如下:
<p th:text='${title}'>這是標(biāo)題</p>
Thymeleaf為變量所在域提供了一些內(nèi)置對(duì)象,具體如下所示
# ctx:上下文對(duì)象# vars:上下文變量# locale:上下文區(qū)域設(shè)置# request:(僅限Web Context)HttpServletRequest對(duì)象# response:(僅限Web Context)HttpServletResponse對(duì)象# session:(僅限Web Context)HttpSession對(duì)象# servletContext:(僅限Web Context)ServletContext對(duì)象
假設(shè)要在Thymeleaf模板引擎頁(yè)面中動(dòng)態(tài)獲取當(dāng)前國(guó)家信息,可以使用#locale內(nèi)置對(duì)象,示例代碼如下
The locale country is: <span th:text='${#locale.country}'>US</span>1.2 選擇變量表達(dá)式*{…}
和變量表達(dá)式用法類(lèi)似,一般用于從被選定對(duì)象而不是上下文中獲取屬性值,如果沒(méi)有選定對(duì)象,則和變量表達(dá)式一樣,示例代碼如下
<div th:object='${book}'><p>titile: <span th:text='*{title}'>標(biāo)題</span>.</p></div>
*{title} 選擇變量表達(dá)式獲取當(dāng)前指定對(duì)象book的title屬性值。
1.3 消息表達(dá)式 #{…}消息表達(dá)式#{…}主要用于Thymeleaf模板頁(yè)面國(guó)際化內(nèi)容的動(dòng)態(tài)替換和展示,使用消息表達(dá)式#{…}進(jìn)行國(guó)際化設(shè)置時(shí),還需要提供一些國(guó)際化配置文件。
1.4 鏈接表達(dá)式 @{…}鏈接表達(dá)式@{…}一般用于頁(yè)面跳轉(zhuǎn)或者資源的引入,在Web開(kāi)發(fā)中占據(jù)著非常重要的地位,并且使用也非常頻繁
<a th:href='http://m.propowerdrill.cn/bcjs/@{http://localhost:8080/order/details(orderId=${o.id})}' rel='external nofollow' >view</a><a th:href='http://m.propowerdrill.cn/bcjs/@{/order/details(orderId=${o.id},pid=${p.id})}' rel='external nofollow' >view</a>
鏈接表達(dá)式@{…}分別編寫(xiě)了絕對(duì)鏈接地址和相對(duì)鏈接地址。
在有參表達(dá)式中,需要按照@{路徑(參數(shù)名稱(chēng)=參數(shù)值,參數(shù)名稱(chēng)=參數(shù)值…)}的形式編寫(xiě),同時(shí)該參數(shù)的值可以使用變量表達(dá)式來(lái)傳遞動(dòng)態(tài)參數(shù)值
1.5 片段表達(dá)式 ~{…}片段表達(dá)式~{…}用來(lái)標(biāo)記一個(gè)片段模板,并根據(jù)需要移動(dòng)或傳遞給其他模板。其中,最常見(jiàn)的用法是使用th:insert或th:replace屬性插入片段
<div th:insert='~{thymeleafDemo::title}'></div>
thymeleafDemo為模板名稱(chēng),Thymeleaf會(huì)自動(dòng)查找“/resources/templates/”目錄下的thymeleafDemo模板,title為片段名稱(chēng)
二、基本使用2.1 Thymeleaf模板基本配置首先 在Spring Boot項(xiàng)目中使用Thymeleaf模板,首先必須保證引入Thymeleaf依賴(lài)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
其次,在全局配置文件中配置Thymeleaf模板的一些參數(shù)。一般Web項(xiàng)目都會(huì)使用下列配置
spring.thymeleaf.cache = true #啟用模板緩存spring.thymeleaf.encoding = UTF_8 #模板編碼spring.thymeleaf.mode = HTML5 #應(yīng)用于模板的模板模式spring.thymeleaf.prefix = classpath:/templates/ #指定模板頁(yè)面存放路徑spring.thymeleaf.suffix = .html #指定模板頁(yè)面名稱(chēng)的后綴
上述配置中:
spring.thymeleaf.cache表示是否開(kāi)啟Thymeleaf模板緩存,默認(rèn)為true,在開(kāi)發(fā)過(guò)程中通常會(huì)關(guān)閉緩存,保證項(xiàng)目調(diào)試過(guò)程中數(shù)據(jù)能夠及時(shí)響應(yīng);
spring.thymeleaf.prefix指定了Thymeleaf模板頁(yè)面的存放路徑,默認(rèn)為classpath:/templates/;
spring.thymeleaf.suffix指定了Thymeleaf模板頁(yè)面的名稱(chēng)后綴,默認(rèn)為.html
到此這篇關(guān)于Java基礎(chǔ)總結(jié)之Thymeleaf模板的文章就介紹到這了,更多相關(guān)Java Thymeleaf模板內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP.NET MVC使用JSAjaxFileUploader插件實(shí)現(xiàn)單文件上傳2. 使用ajax跨域調(diào)用springboot框架的api傳輸文件3. Ajax登陸使用Spring Security緩存跳轉(zhuǎn)到登陸前的鏈接4. Python文字截圖識(shí)別OCR工具實(shí)例解析5. PHP字符串前后字符或空格刪除方法介紹6. Python批量處理csv并保存過(guò)程解析7. python。對(duì)象集中的身份。和散列8. react axios 跨域訪問(wèn)一個(gè)或多個(gè)域名問(wèn)題9. uni-app?中清除定時(shí)器實(shí)現(xiàn)方法詳解10. python實(shí)現(xiàn)文件+參數(shù)發(fā)送request的實(shí)例代碼
