Привет, друзья, у меня есть две модели: пользователь и роль. Я вставил три роли (АДМИН, ЗАКАЗЧИК, ДИЛЕР) в таблице Роли. Я сделал эти роли доступными для поля «Тип пользователя Thymeleaf», которое будет выбрано при регистрации.
Атрибут модели контроллера для ролей.
@ ModelAttribute ("role" )
public List<Role> initializeRoles(){
List<Role> roles = roleRepository.findAll();
return roles ;
}
Тогда вот мой тимиан для отображения доступных ролей, которые пользователь может выбрать при регистрации.
<div class="col-1.5">
<label th:for="roles"> User Type: </label>
<select class="form-control form-control-sm" id="agentName">
<option value="">Select User Type</option>
<option th:each="initializeRoles:${roles}"
th:value="${initializeRoles.id}"
th:text="${initializeRoles.name}"
>
</option>
</select>
</div>
Наконец, вот мой пользователь Служба для отправки регистрационных данных, введенных пользователем:
public void save(User user) {
user.setEnabled(false);
user.setPword(new BCryptPasswordEncoder().encode(user.getPword()));
user.setRoles(user.getRoles());
userRepository.save(user);
}
Я ожидаю, что роль, выбранная из поля типа пользователя, будет отправлена и назначена в качестве роли этому пользователю. однако остальные пользовательские данные успешно сохраняются, кроме выбранной роли. Где я иду не так?