Java模板引擎Thymeleaf基本語法詳解
Thymeleaf在Java生態(tài)系統(tǒng)中非常受歡迎,并與Spring框架緊密集成。它具有豐富的擴展和第三方庫,可以提供各種功能。Thymeleaf在服務器端生成HTML頁面,并將最終的結果發(fā)送給客戶端瀏覽器。頁面中的內容在每次請求時都會由服務器動態(tài)生成。和Vue這些不同,Vue在客戶端瀏覽器中動態(tài)渲染頁面。它可以基于數(shù)據動態(tài)地更新視圖,而無需每次請求都向服務器發(fā)送數(shù)據。
Thymeleaf 3.1.2.RELEASE is the latest version. It requires Java SE 8 or newer.
一、Thymeleaf 表達式語言的使用
Thymeleaf 表達式語言(簡稱為EL)是 Thymeleaf 強大功能的基礎之一,它使得在模板中可以輕松地插入和操作動態(tài)數(shù)據。下面是幾個常用的 Thymeleaf 表達式:
變量表達式:
${variable}- 用于在模板中輸出變量的值。
- 示例:
<h1 th:text="${pageTitle}">Page Title</h1>
選擇表達式:
*{expression}- 用于從對象中選擇屬性或調用方法。
- 示例:
<p th:text="*{user.name}">Default Name</p>
鏈接表達式:
@{url}- 用于生成鏈接或動態(tài) URL。支持相對路徑和絕對路徑。
- 示例:
<a th:href="@{/product/{id}(id=1)}">Product Details</a>
消息表達式:
#[code]- 用于國際化支持,根據當前環(huán)境選擇合適的文本。
- 示例:
<span th:text="#{welcome.message}">Welcome!</span>
內聯(lián)表達式:
[[...]]- 用于 JavaScript 代碼塊內的 Thymeleaf 表達式。
- 示例:
<script th:inline="javascript"> var name = '[[${name}]]'; </script>
二、Thymeleaf 標簽的基本用法
Thymeleaf 提供了一系列標簽和屬性,使得開發(fā)者能夠更靈活地操作 HTML 元素。下面是一些常用的 Thymeleaf 標簽:
th:text:用于設置元素的文本內容。
- 示例:
<h1 th:text="${pageTitle}">Page Title</h1>
- 示例:
th:if 和 th:unless:用于條件判斷并渲染 HTML 元素。
- 示例:
<p th:if="${isUserLoggedIn}">Hello, User!</p> - 示例:
<p th:unless="${isUserLoggedIn}">Please login to continue.</p>
- 示例:
th:each:用于循環(huán)遍歷集合或數(shù)組,并渲染 HTML 元素。
- 示例:
<ul><li th:each="item : ${items}" th:text="${item}"></li></ul>
- 示例:
th:href 和 th:src:用于設置鏈接地址和資源路徑。
- 示例:
<a th:href="@{/product/{id}(id=1)}">Product Details</a> - 示例:
<img th:src="@{/images/myimage.jpg}" alt="My Image" />
- 示例:
th:attr:用于設置 HTML 元素的屬性。
- 示例:
<input type="text" th:attr="placeholder=#{username.placeholder}" />
- 示例:
三、在模板中使用屬性和變量
Thymeleaf 允許在模板中使用屬性和變量,以插入動態(tài)數(shù)據。下面是幾個常見的用法:
使用屬性:通過 HTML 元素的屬性來設置動態(tài)值。
- 示例:
<h1 th:text="${pageTitle}">Page Title</h1>
- 示例:
使用變量:使用
${variable}語法將變量的值插入到模板中。- 示例:
<p th:text="${user.name}">Default Name</p>
- 示例:
在元素內部使用屬性和變量:可以在標簽的內容或屬性值中使用表達式語言。
- 示例:
<a th:href="@{/product/${productId}(productId=${product.id})}">Product Details</a>
- 示例:
通過 Thymeleaf 表達式語言和標簽,您可以輕松地在模板中添加動態(tài)數(shù)據和邏輯,并根據需要進行條件判斷、循環(huán)遍歷等操作。 好的,下面我將為您提供示例來說明數(shù)據綁定、渲染和屬性綁定與條件判斷的用法。
四、在控制器中傳遞數(shù)據到模板
@Controller
public class MyController {
@GetMapping("/hello")
public String hello(Model model) {
String message = "Hello, Thymeleaf!";
model.addAttribute("message", message);
return "hello-template";
}
}在這個示例中,控制器通過 Model 對象的 addAttribute 方法將數(shù)據(message)傳遞給模板。然后,控制器返回字符串 "hello-template",表示使用名為 hello-template 的 Thymeleaf 模板來進行渲染。
1、使用 Thymeleaf 表達式渲染數(shù)據
<h1 th:text="${message}"></h1>這個示例中,通過 ${message} 表達式可以在模板中渲染控制器傳遞過來的 message 數(shù)據。
2、屬性綁定和條件判斷
<p th:class="${status eq 'active'} ? 'active' : ''">Content</p>這個示例中,根據條件 ${status eq 'active'} 判斷,如果條件成立,則給 <p> 元素添加 active 類;否則,不添加任何類。
我演示了數(shù)據綁定和渲染,以及屬性綁定和條件判斷的用法。您可以根據具體需求,在控制器中傳遞數(shù)據給模板,并使用 Thymeleaf 表達式根據數(shù)據進行渲染和操作。請根據實際情況修改示例中的變量名和條件,以適應您的應用程序邏輯。
到此這篇關于Java模板引擎Thymeleaf基本語法詳解的文章就介紹到這了,更多相關Java Thymeleaf基本語法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java多線程編程之使用runnable接口創(chuàng)建線程
實現(xiàn)Runnable接口的類必須使用Thread類的實例才能創(chuàng)建線程,通過Runnable接口創(chuàng)建線程分為以下兩步2014-01-01
SpringBoot整合RabbitMQ 手動應答(簡單demo)
這篇文章主要介紹了SpringBoot整合RabbitMQ 手動應答 簡單demo,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
詳解SpringBoot中異步請求和異步調用(看完這一篇就夠了)
這篇文章主要介紹了SpringBoot中異步請求和異步調用問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04

