Bom dia pessal!
Eu estou com um problema ao tentar atualizar um registro existente, eu carrego o registro, porém ao salvar ele cria um "novo" registro com os dados carregados no formulario.jsp
Eu tenho a classe modelo "Usuario"...
Na listagem.jsp eu criei um link, para selecionar o registro:
<a href="${linkTo[UsuarioController].atualiza}?id=${usuario.id}" class="addSelecionaLista" title="Selecionar">
<i class="glyphicon glyphicon-log-in"></i></a>
Tenho meu formulario.jsp, com a action adiciona:
<form action="${linkTo[UsuarioController].adiciona(null)}" method="post">
Os métodos adiciona, atualiza e buscaPorId no meu UsuarioDao:
public void adiciona(Usuario usuario) {
manager.getTransaction().begin();
manager.persist(usuario);
manager.getTransaction().commit();
manager.close();
}
public Usuario atualiza(int id, Result result) {
Usuario usuario = this.buscaPorId(id);
return usuario;
}
public Usuario buscaPorId(int id) {
return manager.find(Usuario.class, id);
}
E no meu UsuarioController, a chamada para os métodos:
@IncludeParameters
public void adiciona(@Valid Usuario usuario) {
validator.onErrorRedirectTo(this).index();
usuarioDao.adiciona(usuario);
result.redirectTo(this).lista();
}
public void atualiza(int id, Result result) {
Usuario usuario = usuarioDao.buscaPorId(id);
result.include(usuario);
result.of(this).index();
}