Boa tarde,
Preciso fazer uma comparação de 2 listas e marcar como selected as permissões que o usuário possui, as listas, são as seguintes:
1° Lista de roles que vem do banco e é mandado para view e carrega uma combo. 2° Um atributo do tipo List do meu objeto Consultor chamado de roles.
Ao enviar para tela de atualização do Consultor, eu preciso verificar as roles que eu tenho no banco e selecionar aquelas que a lista do meu consultor possui.
Poderiam me ajudar ? Obs: Estou usando Thymeleaf.
Meu método que retorna para a tela de update:
@ResponseBody
@GetMapping(path = "/'{username}'")
public ModelAndView findByUsername(@PathVariable("username") String username){
ModelAndView modelAndView = new ModelAndView();
List<Equipe> equipes = Arrays.asList(Equipe.values());
List<Filial> filiais = Arrays.asList(Filial.values());
List<Cargo> cargos = Arrays.asList(Cargo.values());
modelAndView.addObject("equipes", equipes);
modelAndView.addObject("filiais", filiais);
modelAndView.addObject("cargos", cargos);
modelAndView.addObject("roles", roleServiceImpl.getAll());
modelAndView.addObject("consultor", consultorServiceImpl.findByUsername(username));
System.out.println(username);
modelAndView.setViewName("/consultor/update");
return modelAndView;
}
E este é meu select que carrega todas as permissões:
<select id="select-permissoes" multiple="multiple"
name="roles" th:required="required" >
<option value="" th:disabled="disabled"
th:selected="selected" >Selecione as permissões
</option>
<option
th:each="role : ${roles}"
th:value="${role.nome}"
th:text="${role.descricao}">
</option>
</select>