Как задать значение по умолчанию для выбора из списка в Thymeleaf?

Как вывести значения списка ролей в select для каждого пользователя?
  • 6 ноября 2023 г. 20:09
Ответы на вопрос 1
Чтобы задать значение по умолчанию для выбора из списка в Thymeleaf, нужно использовать атрибут `th:selected` и выражение Thymeleaf для проверки условия выбора. Например, если у вас есть список ролей и вы хотите установить значение "user" по умолчанию, вы можете сделать следующее:

```html
<select>
    <option th:selected="${user.role == 'user'}" value="user">User</option>
    <option th:selected="${user.role == 'admin'}" value="admin">Admin</option>
    <option th:selected="${user.role == 'manager'}" value="manager">Manager</option>
</select>
```

В этом примере для каждой опции мы используем выражение Thymeleaf `${user.role == 'user'}` в атрибуте `th:selected`, чтобы проверить, соответствует ли значение роли пользователю. Если условие истинно, то опция будет выбрана по умолчанию.

Чтобы вывести список ролей в select для каждого пользователя, предполагая, что у вас есть модель с объектом `user` и списком ролей `roles`, вы можете использовать цикл `th:each`, чтобы пройтись по каждому пользователю и создать соответствующий элемент select:

```html
<select>
    <option th:each="role : ${roles}" th:selected="${role == user.role}" th:value="${role}">
        <span th:text="${role}"></span>
    </option>
</select>
```

В этом примере мы используем цикл `th:each` для каждого элемента `role` в списке `roles`. Затем, с помощью выражения Thymeleaf `${role == user.role}` в атрибуте `th:selected`, мы проверяем, соответствует ли текущая роль роли пользователя. Если условие истинно, то опция будет выбрана. Значение роли устанавливается с помощью атрибута `th:value`, а название роли отображается с помощью тега `span` и атрибута `th:text`.
Похожие вопросы