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

Alteração no usuário

Eu estou tentando fazer uma alteração no usuário, com o intuito de alterar apenas alguns campos.

@Post 
public void alteraUsuario(int id){
    result.include("usuario", usuarioDAO.buscaPorId(id));
}

mostro na view o que eu qro alterar

<form action="${linkTo[UsuarioController].salvaAlteracoesDoUsuario(null)}" method="post" >
    <input type="text" value="${usuario.nome}" name"usuario.nome">
    <input type="text" value="${usuario.email}" name"usuario.email">
    <button type"submit"/>
<form>

e salvo

public void salvaAlteracoesDoUsuario(Usuario usuario){
    usuarioDAO.salva(usuario);
    result.redirectTo(this).form();
}

Porém o usuário só vem com o e-mail e nome preenchido .. a minha duvida é, se o usuario que eu incluo na view é uma instancia .. e a que eu recebo é outra, onde apenas o que eu preenchi na tela é alterado, ou a maneira que eu estou fazendo esta errada.

2 respostas
solução!

Oi Aline,

Sim, as instâncias dos objetos são diferentes. O usuario que vc passou pra view, "morreu" quando a requisição acabou. Aí, quando vc faz o novo POST, o VRaptor instancia outro Usuário.

No seu método salvaAlteracoesDoUsuario, o usuario vem com todos os dados que vc preencheu no formulário, certo?

Humm, entendi sim.

Obrigada!