Thymeleaf mapowanie lists checkbox

0

Nie jestem pewien czy dobrze zatytułowałem wątek. Chciałbym stworzyć w widoku używając thymeleafa a razcej Mape key value checkboxów. Chciałbym żeby wartości były zaczytane z klasy albo zrobić to jakoś z enumem. Działanie ma być takie że mam nazwę i boolean w widoku zaznaczam lub nie checkboxy a poźniej do tych wartości.
np.

 <form class="form-horizontal" action="/file/newFile" enctype="multipart/form-data" method="POST"/>
            <div class="form-group">
                <input class="btn-form" id="file" name="file" type="file" required/>
                <input class="btn btn-primary" type="submit" value="Upload"/>
               <input type="checkbox" name="isenableFirst"/><>first</>
                <input type="checkbox" name="isenableSec"/><>sec</>
                <input type="checkbox" name="isenablthird"/><>third</>
            </div>
        </form>
    public MyClass{
private boolean isenableFirst;
private boolean isenableSec;
private boolean isenablthird;

....get set.....
}

1

Z czym masz konkretnie problem? Próbowałeś już użyć jakiejś kolekcji? Będziesz się musiał po niej przeiterować w szablonie - tutaj z pomocą przychodzi Google: https://www.baeldung.com/thymeleaf-iteration

Tutaj masz nawet gotowca: https://stackoverflow.com/questions/39424715/how-to-correctly-bind-checkbox-to-the-object-list-in-thymeleaf

0

@Charles_Ray: Iterowanie to wiem jak. Kwestia jest tego że w widoku mam checkboxy np. isEnable1, isEnable2 .... i potrzebuje korzystać z ich ustawień false/true w calym projekcie. MyClass mam jako @Component. Jak najlepiej skonstruować to aby było poprawnie.
Myślałem żeby stworzyć zmienna w MyClass np. private Map<EnableTest, Boolean> isEnableMap do tego gettery i settery i dodatkowo enuma gdzie będe miał wypisane moję isEnable1, isEnable2..... ?

0

Najpierw musisz zrozumieć jak działa Thymeleaf. Zrób tak, żeby działało. Potem zastanowimy się jak to zrobić „ładnie”.

0

@Charles_Ray: A możesz napisać mi co tu jest źle ?

            <form class="form-horizontal" th:action="@{/file}" enctype="multipart/form-data" method="POST"
            />
            <div class="form-group">
                <input class="btn-form" id="file" name="file" type="file" required/>
                <input class="btn btn-primary" type="submit" value="Upload"/>
                <p>

                <p th:each="item : ${myClass.getIsEnableMap()}">
                    <!--                    <span th:text="${item.key}"></span>-->
linia 38               <input type="checkbox" th:field="${item.key}" th:value="${item.value}"/>
                </p>
            </div>
            </form>

org.thymeleaf.exceptions.TemplateProcessingException: Error during execution of processor 'org.thymeleaf.spring5.processor.SpringInputCheckboxFieldTagProcessor' (template: "home" - line 38, col 44)
at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:117) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE]
at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE]

0

Ja się nie znam na Thymeleaf, IMHO obciąłeś stacktrace - tam powinien być jakiś message, co konkretnie jest źle. Dalej nie pomogę - googluj.

0

@Charles_Ray: a czy załatwienie tego map-ą i enume brzmi sensownie ?

0

Tak, brzmi sensownie. Nie wiem tylko po co enum, ale niech będzie. Wróć z kodem ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1