知識庫 / Spring / Spring MVC RSS 訂閱

使用自定義HTML屬性在Thymeleaf中工作

Spring MVC
HongKong
10
01:42 PM · Dec 06 ,2025

1. 概述

本教程將介紹如何使用 Thymeleaf 在 HTML5 標籤中定義自定義屬性。Thymeleaf 是一個模板引擎框架,允許使用純 HTML 來顯示動態數據。

對於 Thymeleaf 或其與 Spring 的集成方面的入門文章,請參閲此鏈接。

2. HTML5 自定義屬性

有時,我們需要在 HTML 頁面中提供額外信息,以便在客户端進行處理。例如,我們可能希望在 <em data-form> 標籤中保存附加數據,以便在通過 AJAX 提交表單時使用。

同樣,我們可能希望向填寫表單的用户顯示自定義驗證錯誤消息。

無論如何,我們可以通過使用 HTML5 的自定義屬性來提供這些附加數據。自定義屬性可以使用 `data-</em data-data-prefix> 前綴在 HTML 標籤中定義。

現在,讓我們看看如何使用 Thymeleaf 的默認方言來定義這些屬性。

3. 在 Thymeleaf 中自定義 HTML 屬性

我們可以使用以下語法,在 HTML 標籤中指定自定義屬性:

th:data-<attribute_name>=""

讓我們創建一個簡單的表單,允許學生註冊課程,以便親眼見證其效果:

<form action="#" th:action="@{/registerCourse}" th:object="${course}"
    method="post" onsubmit="return validateForm();">
    <span id="errormesg" style="color: red"></span> <span
      style="font-weight: bold" th:text="${successMessage}"></span>
    <table>
        <tr>
            <td>
                <label th:text="#{msg.courseName}+': '"></label>
            </td>
            <td>
                <select id="course" th:field="*{name}">
                    <option th:value="''" th:text="'Select'"></option>
                    <option th:value="'Mathematics'" th:text="'Mathematics'"></option>
                    <option th:value="'History'" th:text="'History'"></option>
                </select></td>
        </tr>
        <tr>
            <td><input type="submit" value="Submit" /></td>
        </tr>
    </table>
</form>

此表單包含一個下拉列表,列出了所有可用的課程,以及一個提交按鈕。

假設我們希望在用户點擊提交按鈕但未選擇課程時,向用户顯示自定義錯誤消息。

我們可以將錯誤消息保存為 select 標籤中的自定義屬性,並創建一個 JavaScript 函數來在提交表單時驗證其值。

更新後的 select 標籤大致如下所示:

<select id="course" th:field="*{name}" th:data-validation-message="#{msg.courseName.mandatory}">

在這裏,我們從資源包中獲取錯誤消息。

現在,當用户在不選擇有效選項的情況下提交表單時,此 JavaScript 函數將向用户顯示錯誤消息:

function validateForm() {
    var e = document.getElementById("course");
    var value = e.options[e.selectedIndex].value;
    if (value == '') {
        var error = document.getElementById("errormesg");
        error.textContent = e.getAttribute('data-validation-message');
        return false;
    }
    return true;
}

同樣,我們也可以通過定義 屬性來為每個 HTML 標籤添加多個自定義屬性。

3. 結論

在本文中,我們探討了如何利用Thymeleaf的支持在HTML5模板中添加自定義屬性。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.