Boa tarde galera, estou com dificuldade para atribuir role para o usuario.
Controller que chama JSP com checkboxes de roles:
@RequestMapping("/roles")
public ModelAndView rolesAlterar(String email) {
Usuario usuario = usuarioDAO.find(email);
List<Role> roleList = roleDAO.roleList();
ModelAndView modelAndView = new ModelAndView("usuario/roles");
modelAndView.addObject("usuario", usuario);
modelAndView.addObject("roles", roleList);
return modelAndView;
}
roles.jsp:
<div class="container">
<h1>Cadastro de Permissoes para ${usuario.nome }</h1>
<form:form action="${s:mvcUrl('UC#rolesUpdate').build() }" method="post" commandName="usuario" >
<div class="form-group">
Permissoes:
<form:checkboxes items="${roles }" path="roles" itemLabel="nome" />
<br><br>
<button type="submit">Atualizar</button>
</div>
</form:form>
</div>
Obs.: As roles ja cadastradas no usuario consta como checked!!!
Controller rolesUpdate:
@RequestMapping(value = "/roles", method = RequestMethod.POST)
public ModelAndView rolesUpdate(Usuario usuario, RedirectAttributes redirectAttributes) {
System.out.println(usuario);
// chamara o DAO
redirectAttributes.addFlashAttribute("massage", "Roles alterada com sucesso!");
return new ModelAndView("redirect:/usuarios");
}
Porem o objeto usuario recebido eh um novo objeto, com somente as roles selecionadas. toString - [email=null, senha=null, nome=null, senhaConfere=null, roles=[br.com.casadocodigo.loja.models.Role@1a920fdf, br.com.casadocodigo.loja.models.Role@204697df]]
Teria como retornar o mesmo objeto enviado para jsp, contendo as informacoes de roles adicionadas e assim podendo enviar para o DAO persistir?