Установить значение по умолчанию для выбора в тимелеафе

Я использую 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 — атрибут тревоги.

Вы должны добавить th:selected к опции, а не к выбору

Ayrton 26.02.2019 18:28

@ayrton показывает только последний вариант выбора, но это не сохраненное значение, которое я хочу показать.

tovarichML 26.02.2019 18:31

Вы хотите пометить правильный вариант как выбранный, верно? Затем вы должны добавить th:selected к опции с выражением, которое оценивается как истинное или ложное в зависимости от вашего alarmPeriod

Ayrton 26.02.2019 18:34

@ayrton, это работает! большое спасибо.

tovarichML 26.02.2019 18:37
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
4
1 285
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Выбранная опция должна быть помещена как опция, как если бы вы сделали с тегом выбора 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.

Другие вопросы по теме