Я использую Spring boot + thymeleaf и пытаюсь установить значение по умолчанию для элемента select, чтобы отобразить выбранный объект, который хранится в базе данных (форма редактирования).
Для этого из контроллера я вставляю в модель объект с его значениями, но когда я пытаюсь установить значение по умолчанию для выбора, он всегда получает первый вариант.
Это код:
<select class = "selectpicker"
id = "alarmPeriod" name = "alarmPeriod"
th:selected = "${alarm.alarmPeriod}"
th:value = "${alarm.alarmPeriod}">
<option th:each = "period:${periods}"
th:value = "${period}" th:text = "${period}">
</option></select>
Я пробовал с th:field = "*{alarm.alarmPeriod}", но сбой процессора тимелеафа.
Как я могу установить значение по умолчанию для выбора с моим сохраненным значением объекта?
PD: тревога — это моя сущность, а alarmPeriod — атрибут тревоги.
@ayrton показывает только последний вариант выбора, но это не сохраненное значение, которое я хочу показать.
Вы хотите пометить правильный вариант как выбранный, верно? Затем вы должны добавить th:selected к опции с выражением, которое оценивается как истинное или ложное в зависимости от вашего alarmPeriod
@ayrton, это работает! большое спасибо.




Выбранная опция должна быть помещена как опция, как если бы вы сделали с тегом выбора htnl, следующий фрагмент кода должен работать
<select class = "selectpicker"
id = "alarmPeriod" name = "alarmPeriod">
<option value = "${alarm.alarmPeriod}" selected = "selected">
${alarm.alarmPeriod}
</option>
<option th:each = "period:${periods}"
th:value = "${period}" th:text = "${period}">
</option></select>
selected — это атрибут тега option. Поскольку вы пытаетесь пометить один из вариантов как выбранный, вы должны добавить атрибут th:selected к своим параметрам с выражением, которое будет оцениваться как true или false в зависимости от вашего alarmPeriod.
Вы должны добавить
th:selectedк опции, а не к выбору