2017-02-23 4 views
0

Ich habe ein Modell, das eine boolesche 'gelöscht' enthält. Ich erzeuge eine Liste und jedes Element enthält diese Variable.Einstellung boolean mit th: überprüft

Ich drucke es in einer Liste aus und ich versuche, es mit einem Kontrollkästchen zu setzen, so dass es speichert, was eingestellt ist.

Modell

public class entry{ 
private boolean deleted; 

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

//setters & getters for deleted 
} 

Ich habe eine Wrapper-Klasse unter Verwendung der in dieser Liste lesen dann meine thymeleaf Form. Was gut funktioniert.

Ich kann das Kontrollkästchen aktivieren, abhaken je nach dem gelöschten Zustand für jedes Element, aber wenn ich das Kontrollkästchen von aktiviert zu deaktivieren ... nicht speichert es die Variable in diesem Zustand.

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: Objekt

<form action="#" th:action="@{submitData}" class="saveForm" 
      method="post" th:object="${entryWrapper}"> 
... 
... 
</form> 

Wrapper-Klasse

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

Wie sieht die Eintragsliste aus? Liste ? Was ist dein Objekt? – Metroids

+0

haben den Inhalt der Wrapper-Klasse und das Objekt th: enthalten. Das @ {submitData} bringt den Benutzer einfach zur Ansicht der Liste, ohne Einträge bearbeiten zu können. – Travisty

Antwort

0

Statt th:checked, sollten Sie th:field

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

th:field verwenden den Namen, die ID und überprüft Attribute erzeugen, so dass, wenn Sie das Formular veröffentlichen sollte Ihr Modell Objekt füllen.

+0

Vielen Dank :) Ich hatte dies gegeben, konnte aber die Checkboxen überhaupt nicht auswählen. Allerdings war dies ein Problem mit der Verwendung von