Bom, estou fazendo uma app no Eclipse com Struts2 e Hibernate, já consigo inserir,editar e remover, mas não consigo listar os items num .jsp, só aparece o cabeçalho da página e o titulo, mas os dados não:
Meu HibernateUtil:
public class HibernateUtil {
private static SessionFactory factory;
static{
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Produto.class);
factory = cfg.buildSessionFactory();
}
public Session getSession(){
return factory.openSession();
}
}
Meu Action:
public class ListarProdutosAction {
private List<Produto> produtos;
Session session = new HibernateUtil().getSession();
@Action(value="listaProdutos",results={
@Result(name="ok",location="/lista_produtos.jsp")
})
public String execute(){
produtos = new ProdutoDAO(session).listar();
return "ok";
}
}
Meu DAO:
public class ProdutoDAO {
private Session session;
public ProdutoDAO (Session session){
this.session = session;
}
public void salva(Produto p){
this.session.save(p);
}
public void remove(Produto p){
this.session.delete(p);
}
public Produto procura(Long id){
return (Produto)this.session.load(Produto.class, id);
}
public void atualiza(Produto p){
this.session.update(p);
}
@SuppressWarnings("unchecked")
public List<Produto> listar(){
Query query = (Query) this.session.createSQLQuery("select * from Produto");
List <Produto> lista = query.list();
return lista;
}
}
Minha página jsp:
<html>
<head>
<title>Listagem de Produtos</title>
</head>
<body>
<h1>Lista de Produtos</h1>
<table>
<tr>
<th>Id</th>
<th>Descrição</th>
<th>Preço(R$)</th>
</tr>
<c:forEach items="${produtos}" var="produto">
<tr>
<td>${produto.id}</td>
<td>${produto.descricao}</td>
<td>${produto.preco}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
Alguém poderia me dizer onde estou errando, por favor.
Obrigado.