Thymeleaf - 如何有条件地将checked属性添加到输入

时间:2015-04-23 14:32:16

标签: html thymeleaf html-input

如您所知,input组件具有属性checked,是否将复选框标记为默认启用。

<input type="checkbox" name="mycheckbox" checked="checked"/>

要默认禁用该复选框,应声明checked例外。是否可以在Thymeleaf中用旗帜设置checked属性?

5 个答案:

答案 0 :(得分:42)

根据官方百里叶文件

http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#fixed-value-boolean-attributes

th:checked被视为固定值布尔属性。

<input type="checkbox" name="active" th:checked="${user.active}" />

user.active应该是boolean

所以在你的情况下它应该是 Andrea 提到的,

<input type="checkbox" name="mycheckbox" th:checked="${flag}" />

答案 1 :(得分:6)

在挖了一点后,我发现了解决方案。为此目的有th:checked属性。

这有效:

<input type="checkbox" name="mycheckbox" th:checked="${flag} ? 'checked'">

这失败了:

<input type="checkbox" name="mycheckbox" th:checked="${flag} ? 'checked' : ''">

如果checked=""设置为input组件,则会将其标记为已选中。此方法也适用于自定义属性th:attr。请考虑以下示例:

<p th:attr="customattr=${flag}?'attr'></p>

如果flag为真,则将其替换为:

<p customattr="attr"></p>

如果flag为假,则将其替换为:

<p></p>

答案 2 :(得分:1)

您可以按如下方式有条件地将选中的属性添加到百里香的单选输入中:

 <input type="radio" th:checked="${sales.sales_head.sales_type} == CREDIT" class="sales_type" value="CREDIT"  name="sales_type" >

如果sales_type为CREDIT,则将检查单选。否则,它将保持未选中状态。

答案 3 :(得分:0)

两种建议的解决方案都不适合我。

这个有效:

th:checked="${#strings.equals(param.myRequestParameterXYZ, 'foobar')}"

答案 4 :(得分:0)

我遇到了基于属性的正确或错误值在百里香中显示复选框(刻度标记打开/关闭)的问题。我按照以下方式解决了。

控制器中的方法

read

在HTML页面中:

@RequestMapping(value = "/test")
public String showCheckbox(Model model) {
 boolean myBooleanVariable = false;
 model.addAttribute("myBooleanVariable", myBooleanVariable);
 return "sample-checkbox";
}