用th设置布尔值:选中

时间:2017-02-23 14:15:17

标签: java checkbox thymeleaf

我有一个包含布尔'删除'的模型。我生成一个列表,每个元素都包含这个变量。

我在列表中将其打印出来并且我正在尝试使用复选框进行设置,因此它会保存所设置的内容。

模型

public class entry{
private boolean deleted;

public entry(boolean deleted){
this.deleted = deleted;
}

//setters & getters for deleted
}

然后我使用包装类在此列表中读取我的百里香形式。哪个工作正常。

我可以根据每个元素的已删除状态显示已选中/未选中的复选框,但是如果我将复选框从选中更改为未选中状态...则不会将变量保存到该状态。

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:对象

<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;
    }
}

1 个答案:

答案 0 :(得分:0)

而不是th:checked,您应该使用th:field

<input type="checkbox" th:field="*{entryList[__${stat.index}__].deleted}">

th:field将生成name,id和checked属性,因此当您发布表单时,它应该填充您的模型对象。