Wie wähle ich den Wert eines Kombinationsfelds in der Steuerung in Spring MVC mit Thymeleaf aus?

Dec 20 2020

Ich habe den folgenden Code für die Ansicht.

<input type="text" name="person" th:value="${person}"> <select name="gender" id="gender" th:value="${gender}">
    <option value="Male">Male</option>
    <option value="Female">Female</option>   
</select>

Regler

modelAndView.addObject("person", "Nancy");
modelAndView.addObject("gender", "Female");

Wenn dies ausgeführt wird, zeigt das Personenfeld korrekt "Nancy" an. Das Kombinationsfeld zeigt jedoch männlich statt weiblich an. Wie wird der richtige Wert angezeigt?

Antworten

1 andrewjames Dec 20 2020 at 05:12

Sie müssen Thymeleaf verwenden, um das selectedAttribut jeder Option zu verarbeiten und sicherzustellen, dass die anfängliche Anzeige korrekt ist:

<select name="gender" id="gender" th:value="${gender}"> <option value="Male" th:selected="${gender} == 'Male'">Male</option>
    <option value="Female" th:selected="${gender} == 'Female'">Female</option>   
</select>

Dies generiert den folgenden HTML-Code:

<select name="gender" id="gender" value="Female">
    <option value="Male">Male</option>
    <option value="Female" selected="selected">Female</option>   
</select>

Das selectedAttribut ist ein boolesches HTML-Attribut. Die Dokumentation zu Thymeleaf finden Sie hier .