Vraptor + Hibernate + Jsp

2 respostas
ViniciusNaka

bom dia pessoal,

estou desenvolvendo uma aplicação com os frameworks destacados no assunto, e estou com o seguinte erro, quando vou editar algum funcionário da minha lista

chamada do método editar…

<a href="editar?idFuncionario=${funcionario.idFuncionario}"> Alterar </a>

daí consta o seguinte erro antes mesmo de entrar no meu método editar :frowning:

abaixo seguem os dados das minhas classes…

controllers…

@Resource
public class FuncionariosController {

	private final FuncionarioDAO dao;
	private final Result result;
	
	// CONSTRUTOR
	public FuncionariosController(FuncionarioDAO dao, Result result){
		this.dao = dao;
		this.result = result;		
	}	
	
	// METODO QUE LISTA TODOS OS FUNCIONARIOS
	public List<Funcionario> listar(){
		return dao.listar();
	}
		
	// METODO QUE CHAMA O DAO PARA CADASTRAR NO BD E DEPOIS REDIRECIONA PARA A LISTAGEM DE FUNCIONARIOS
	public void adicionar(Funcionario funcionario){
		if(funcionario.getTipoFuncionario() == null){
			funcionario.setTipoFuncionario(false);
		} 
		dao.cadastrar(funcionario);
		result.redirectTo(this).listar();
	}
	
	// METODO QUE CHAMA O DAO PARA EDITAR O FUNCIONARIO
	public Funcionario editar(int id){
		return dao.carregar(id);		
	}
	
	// METODO QUE CHAMA O DAO PARA ALTERAR O FUNCIONARIO NO BD E DEPOIS REDIRECIONA PARA A LISTAGEM DE FUNCIONARIOS
	public void alterar(Funcionario funcionario){
		dao.atualizar(funcionario);
		result.redirectTo(this).listar();
	}
	
	// METODO QUE CHAMA O DAO PARA EXCLUIR O FUNCIONARIO NO BD E DEPOIS REDIRECIONA PARA A LISTAGEM DE FUNCIONARIOS
	public void excluir(int id){
		Funcionario funcionario = dao.carregar(id);
		dao.excluir(funcionario);
		result.redirectTo(this).listar();
	}
	
	public void formulario(){		
	}
	
}

dao…

@Component
public class FuncionarioDAO {

	private Session session;

	public FuncionarioDAO(){		
		session = CreateSession.getSession();		
	}

	//METODO PARA CADASTRAR O FUNCIONARIO NO BD
	public void cadastrar(Funcionario funcionario){
		Transaction transaction = session.beginTransaction();
		session.save(funcionario);
		transaction.commit();
	}
	
	//METODO PARA EXCLUIR O FUNCIONARIO DO BD
	public void excluir(Funcionario funcionario){
		Transaction transaction = session.beginTransaction();
		session.delete(funcionario);
		transaction.commit();
	}

	//METODO PARA ALTERAR OS DADOS DO FUNCIONARIO NO BD
	public void atualizar(Funcionario funcionario){
		Transaction transaction = session.beginTransaction();
		session.update(funcionario);
		transaction.commit();
	}

	//METODO PARA LISTAR OS FUNCIONARIOS CADASTRADOS
	public List<Funcionario> listar(){
		return this.session.createCriteria(Funcionario.class).list();
	}

	public Funcionario carregar(int id) {		
		return (Funcionario) this.session.load(Funcionario.class, id);
	}

}

meu bean…

@Entity
@Table(name="funcionario")
public class Funcionario implements Serializable{
	
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue
	@Column(name="id_func")
	private int idFuncionario;
	
	@Column(name="nome", nullable=false)
	private String nome;
	
	@Column(name="email", nullable=false)
	private String email;
	
	@Column(name="gestor")
	private Boolean tipoFuncionario;

        getters e setters...

desde já agradeço pela ajuda.

Abs

2 Respostas

Lucas_Cavalcanti

o editar recebe um int id:

public Funcionario editar(int id){

então o parâmetro passado deveria se chamar id:

<a href="editar?id=${funcionario.idFuncionario}"> Alterar </a>

assim funciona?

ViniciusNaka

puts, e não é que era isso?! rs

obrigado Lucas pela ajuda!!

Abs

Criado 14 de março de 2011
Ultima resposta 14 de mar. de 2011
Respostas 2
Participantes 2