Bom dia amigos, não sei se esse seria o melhor local para eu abrir este tópico, pois sou iniciante na linguagem e escolhi este indice por ser o mais parecido com meu problema.
eu estou tentando desenvolver um sistema de cobrança de mensalidades, eu tenho um dao onde tem os metodos procura, salva, remove, lista, tenho uma action para esses metodos, porem nao sei como fazer para quando eu digitar um id em um form jsp, quando eu clicar em buscar, ele retornar os dados contidos no banco de dados mysql referentes a este id, abaixo eu vou colar meus codigos para ver se alguem consegue me ajudar.
agradeço desde já.
ContatoDAO:
public class ContatoDAO {
private Session session;
public ContatoDAO(Session session){
this.session = session;
}
public void salva(Contato c) {
this.session.save(c);
}
public void remove(Contato c) {
this.session.delete(c);
}
public Contato procura(Long id) {
return (Contato) this.session.load(Contato.class, id);
}
public Contato procuraMatricula(Long matricula) {
return (Contato) this.session.load(Contato.class, matricula);
}
public void atualiza(Contato c) {
this.session.update(c);
}
public List<Contato> listaTudo() {
return this.session.createCriteria(Contato.class).list();
}
}
pesquisaMatricula.jsp:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:import url="Cabecalho.jsp" />
<body>
<form action="pesquisaContatos" method="post">
<p>Matricula:
<input name="id" type="text"/>
</p>
<%String id = request.getParameter("id"); %>
<input type="submit" value="Pesquisar">
</form>
<c:import url="Rodape.jsp" />
PesquisaContatosAction:
public class PesquisaContatosAction {
private Contato contato;
private Long id;
@Action(value="pesquisaContatos", results = {
@Result(name="ok", location="/listacontatos.jsp"),
})
public String execute() {
Session session = new HibernateUtil().getSession();
session.beginTransaction();
ContatoDAO dao = new ContatoDAO(session);
dao.procura(id);
session.getTransaction().commit();
session.close();
return "ok";
}
public Contato getContato() {
return contato;
}
public void setMatricula(Long matricula) {
contato.getMatricula();
}
}
o erro que aparece quando eu clico em pesquisar é o seguinte:
java.lang.IllegalArgumentException: id to load is required for loading
org.hibernate.event.LoadEvent.(LoadEvent.java:74)
org.hibernate.event.LoadEvent.(LoadEvent.java:56)
org.hibernate.impl.SessionImpl.load(SessionImpl.java:820)
org.hibernate.impl.SessionImpl.load(SessionImpl.java:816)
br.com.mensalidade.hibernate.DAO.ContatoDAO.procura(ContatoDAO.java:25)
agradeço a todos desde já
SDS
Leandro Mouzer