Java 将布尔值设置为th:checked
我有一个模型,其中包括一个布尔“删除”。我生成一个列表,每个元素中都有这个变量 我将它打印在一个列表中,并尝试使用一个复选框进行设置,因此它会保存所有设置 型号Java 将布尔值设置为th:checked,java,checkbox,thymeleaf,Java,Checkbox,Thymeleaf,我有一个模型,其中包括一个布尔“删除”。我生成一个列表,每个元素中都有这个变量 我将它打印在一个列表中,并尝试使用一个复选框进行设置,因此它会保存所有设置 型号 public class entry{ private boolean deleted; public entry(boolean deleted){ this.deleted = deleted; } //setters & getters for deleted } 然后,我使用包装器类在列表中读取我的thymelea
public class entry{
private boolean deleted;
public entry(boolean deleted){
this.deleted = deleted;
}
//setters & getters for deleted
}
然后,我使用包装器类在列表中读取我的thymeleaf表单。这很好用
根据每个元素的已删除状态,我可以使复选框显示为选中/未选中,但如果我将复选框从选中更改为未选中,它将不会将变量保存到该状态
HTML
<div th:each="entry, stat: *{entryList}">
<td>
<label class="switch">
<input name="index" th:type="checkbox" th:checked="*{entryList[__${stat.index}__].deleted}">
</input> <span class="delete round">
</span>
</label>
</td>
</div>
TH:Object
<form action="#" th:action="@{submitData}" class="saveForm"
method="post" th:object="${entryWrapper}">
...
...
</form>
...
...
包装类
public class EntryWrapper {
@Autowired
private List<Entry> entryList;
public EntryWrapper(){
}
public EntryWrapper(List<Entry> entryList){
this.entryList = entryList;
}
public List<Entry> getEntryList(){
return entryList;
}
public void add(final Entry entry){
this.entryList.add(entry);
}
public void setEntryList(List<Entry> entryList){
this.entryList = entryList;
}
}
公共类入口包装器{
@自动连线
私有列表条目列表;
公共入口包装器(){
}
公共入口包装器(列表入口列表){
this.entryList=entryList;
}
公共列表getEntryList(){
返回入口列表;
}
公共作废添加(最终条目){
this.entryList.add(条目);
}
公共void setEntryList(列表entryList){
this.entryList=entryList;
}
}
您应该使用th:field,而不是th:checked
<input type="checkbox" th:field="*{entryList[__${stat.index}__].deleted}">
th:field
将生成名称、id和选中属性,因此当您发布表单时,它应该填充您的模型对象。entryList是什么样子的?列表另外,您的th:object是什么?包含了包装类内容和th:object。@{submitData}只会将用户带到列表视图,而无法编辑条目。谢谢:)我已经尝试过了,但根本无法选择复选框。然而,我相信这是使用的一个问题。它现在似乎起作用了!