2017-02-23 1435 views
0

我有一個包含布爾型'deleted'的模型。我生成一個列表,每個元素都有這個變量。使用th設置布爾值:checked

我打印出來列表中,我試圖用複選框來設置它,所以它保存設置。

型號

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

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

entryList是什麼樣的?列表?另外,你的第一個對象是什麼? – Metroids

+0

已包含包裝類內容和th:對象。 @ {submitData}僅讓用戶訪問列表的視圖,而無法編輯條目。 – Travisty

回答

0

代替th:checked,您應該使用th:field

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

th:field會生成姓名,身份證,並檢查屬性,這樣當您發佈的形式,它應該填充你的模型對象。

+0

謝謝:)我已經給了這個去,但根本不能選擇複選框。但是,我相信這是使用