如您所知,input
组件具有属性checked
,是否将复选框标记为默认启用。
<input type="checkbox" name="mycheckbox" checked="checked"/>
要默认禁用该复选框,应声明checked
例外。是否可以在Thymeleaf中用旗帜设置checked
属性?
答案 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";
}