Как выбрать значение поля со списком в контроллере в Spring MVC с Thymeleaf?
Dec 20 2020
У меня есть следующий код для представления.
<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>
Контроллер
modelAndView.addObject("person", "Nancy");
modelAndView.addObject("gender", "Female");
Когда это выполняется, в поле человека правильно отображается «Нэнси». Но в поле со списком отображается мужчина, а не женщина. Как заставить его показывать правильное значение?
Ответы
1 andrewjames Dec 20 2020 at 05:12
Вам необходимо использовать Thymeleaf для обработки selected
атрибута каждой опции, чтобы гарантировать правильность начального отображения:
<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>
Это генерирует следующий HTML:
<select name="gender" id="gender" value="Female">
<option value="Male">Male</option>
<option value="Female" selected="selected">Female</option>
</select>
selected
Атрибут является логическим атрибутом HTML - Thymeleaf документация для них здесь .