在 Thymeleaf 中有條件地為輸入添加一個選中的屬性
一、概述
Thymeleaf 是用於構建 Web 環境的現代 Java 模板引擎。它是現代 HTML Web 開發的理想選擇。此外,Thymeleaf 與 Spring Boot 配合得很好。
在本教程中,我們將學習如何有條件地將checked
屬性添加到 Thymeleaf 中的輸入。
2. 使用th:checked
屬性
Thymeleaf 標準方言允許我們有條件地將固定值布爾屬性添加到 HTML 文檔的任何元素。其中一個屬性是th:checked
,它等同於 HTML 中的checked
屬性。
th:checked
屬性用於 HTML 文檔中checkbox
類型的任何輸入。此外,它接受任何Boolean
類型的表達式,該表達式被評估為true
或false
。
例如,要決定一個複選框是否被選中,Thymeleaf 引擎會評估th:checked
屬性中的指定條件。如果條件評估true
,則復選框將被選中。如果條件評估false
,則復選框將被取消選中。
3.例子
讓我們通過一個實際的例子來看看 Thymeleaf 的th:checked
屬性是如何工作的。首先,我們將定義一個 Spring 控制器:
@Controller
public class AttributeController {
@GetMapping("/checked")
public String displayCheckboxForm(Model model) {
Engine engine = new Engine(true);
model.addAttribute("engine", engine);
model.addAttribute("flag", true);
return "attribute/index";
}
private static class Engine {
private Boolean active;
public Engine(Boolean active) {
this.active = active;
}
public Boolean getActive() {
return active;
}
}
}
我們的控制器允許啟動兩個變量,一個是我們命名為“flag”
Boolean
類型,另一個是包含我們命名為“active”
的Boolean
類型屬性的對象Engine
。讓我們在模板中使用這兩個變量,看看我們如何指示 Thymeleaf 使用th:checked
有條件地激活或停用複選框:
<form method="post">
<label>
<input type="checkbox" th:checked="${flag}"/> Flag activated
</label>
<label>
<input type="checkbox" th:checked="${engine.getActive()}"/> Customer activated
</label>
<label>
<input type="checkbox" th:checked="${flag ? false: true}"/> Flag deactivated
</label>
</form>
在我們的模板中,我們使用flag
變量和engine.active
屬性來設置複選框。當我們在控制器中將這些變量初始化為true
時,第一個和第二個複選框被激活,第三個複選框被停用,因為我們的條件表達式計算結果為false
。
4。結論
在本快速教程中,我們發現了 Thymeleaf 中checked
屬性的用法。通過一個實際的例子,我們也學習瞭如何在 Thymeleaf 中有條件地為 input 添加checked
屬性。
GitHub 上提供了本文所示代碼的工作版本。