Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida ao utilizar ModelAndView

Boa noite galera !

Estou com a seguinte dúvida:

Tenho uma página jsp que exibe uma lista de usuários cadastrados

    <c:forEach items="${usuarios }" var="usuario">
            <tr>
                <td>${usuario.nome }</td>
                <td>${usuario.email }</td>
                <c:set var="str" value="${fn:replace(usuario.roles,'[', '')}"></c:set>
                <c:set var="userRoles" value="${fn:replace(str,']', '')}"></c:set>
                <td>${userRoles }</td>
                <td><a href="roles"> <img alt="Cadastrar role"
                        src="imagens/adicionar.png" />
                </a></td>
            </tr>
        </c:forEach>

Nessa página notem que há um link, o propósito desse link é redirecionar o para um form para alterar as roles desse usuário, porém eu preciso passar para o form o usuário em questão que terá suas roles atualizadas. Então pensei em fazer o seguinte no meu Controller:

    @RequestMapping(method = RequestMethod.GET, path = "/roles")
    public ModelAndView form(Usuario usuario) {
        ModelAndView modelAndView = new ModelAndView("/roles/form");
        // aqui eu colocaria de alguma forma o usuário da lista
        modelAndView.addObject("usuario",  usuario)
        return  modelAndView;
    }

Mas não funcionou muito bem. Então pra resumir: Preciso pegar o usuario da lista (onde foi clicado o link) e passar para uma outra página, utilizando jsp.

Agradeço desde já a paciência e resposta.

3 respostas
solução!

Minha sugestão: Tente colocar o id do usuário na url como um parâmetro GET. Ai você recupera ele no controller através do @RequestParam.

Opa tudo bem Leandro, cara obrigado pela ajuda.

Eu até tinha pensado nisso a princípio, mas quando fui checar vi que infelizmente minha tabela de usuários não tem id, o único identificador que possuo é o e-mail do usuário... : /

Resolvi utilizar o e-mail mesmo e deu certo. Obrigado Leandro.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software