Bom, to desenvolvendo uma aplicação com vraptor usando como base a apostila fj-28 da caelum.
Ta adicionando, deletando e listando sem problemas.
Quando vou editar, simplesmente o formulário vem vazio, como se não tivesse achado o item na busca.
No caso é uma lógica para departamentos. (Cadastrar, remover, editar e listar)
ja fiz uma classe teste para meu dao e o metodo “procura” ta funcionando 100%.
Acredito que o erro esteja ou no meu form ou na minha classe departamentoLogic.
Vou colar abaixo.
Qualquer ajuda é bem vinda.
DepartamentoLogic
import java.util.List;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import br.com.click.dao.DaoFactory;
import br.com.click.modelo.Departamento;
@Component("departamento")
@InterceptedBy(DaoInterceptor.class)
public class DepartamentoLogic {
private final DaoFactory daoFactory;
private Departamento departamento;
private List<Departamento> departamentos;
public DepartamentoLogic(DaoFactory daoFactory){
this.daoFactory = daoFactory;
}
//formulario de adição
public void formulario(){
}
public void editar(Departamento departamento) {
//carrega os dados do banco para edição
this.departamento = this.daoFactory.getDepartamentoDao().procura(departamento.getId());
}
public void armazena(Departamento departamento) {
this.daoFactory.beginTransaction();
this.daoFactory.getDepartamentoDao().atualiza(departamento);
this.daoFactory.commit();
}
public void remove(Departamento departamento) {
this.daoFactory.beginTransaction();
this.daoFactory.getDepartamentoDao().remove(departamento);
this.daoFactory.commit();
}
public void lista() {
this.departamentos = this.daoFactory.getDepartamentoDao().listaTudo();
}
public Departamento getDepartemento() {
return departamento;
}
public List<Departamento> getDepartamentos() {
return departamentos;
}
}
formulario.ok.jsp
<form action="departamento.armazena.logic" method="post">
<fieldset>
<legend>Dados Cadastrais</legend>
<input type="hidden" name="departamento.id" value="${departamento.id}"/>
<input type="hidden" name="departamento.id" value="${departamento.id}"/>
Nome do Dep.:
<input type="text" name="departamento.nome" value="${departamento.nome}" />
Descrição:</td>
<textarea rows="5" cols="20" name="departamento.descricao" value="${departamento.descricao}"></textarea>
<input type="submit" />
</form>
Ou seja, o id é passado por get corretamente, mas o formulario simplismente não carrega os dados a serem editado, se eu prossigo ele simplismente adiciona um novo registro.
Alguem faz algum idéia do que possa ser?