vRaptor exercicio Caelum fj-21 não mostra dados populados do banco no jsp ( resolvido )

2 respostas
xxabxx

Boa noite pessoal.
Estuo estudando a apostila fj21, sobre vRaptor.
Na apostila faz menção sobre uma importação do projeto: Desktop/caelum/21/controle-produtos.zip

Como não tenho este projeto resolvi tentar cria-lo.
Criei uma classe usando hibernate para gerar as tabelas
uma classe de produtoDAO.
e a classe ProdutoController.
e a lista.jsp

Quando rodo a “lista.jsp” ela não retorna a lista populada com os dados do banco.

segue os codigos abaixo

ProdutoDAO

import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;


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);
    }

    public List<Produto> listaTudo(){
        return this.session.createCriteria(Produto.class).list();
    }

    public List<Produto> pagina(int inicio, int quantia){
        return this.session.createCriteria(Produto.class).setMaxResults(quantia).setFirstResult(inicio).list();
    }

   public List<Produto> precoMaiorQue(double preco) {
Query query = this.session.createQuery("from Produto where preco > :preco");
query.setDouble("preco", preco);
return query.list();
}

}

ProdutoController

import br.com.caelum.vraptor.Resource;
import java.util.List;
import org.hibernate.Session;


@Resource
public class ProdutoController {

    Session session = new HibernateUtil().getSession();

    public List<Produto> lista() {

        return new ProdutoDAO(session).listaTudo();
    }

   
}

lista.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>


        <h1>Produtos</h1>
        <table>
            <c:forEach var="produto" items="${produtoList}">
                <tr>
                    <td>${produto.nome}</td>
                    <td>${produto.preco}</td>
                    <td>${produto.descricao}</td>
                </tr>
            </c:forEach>
        </table>


At:…
Felipe Gomes de Paula

2 Respostas

guivirtuoso

Debugue seu código, se não esta mostrando é pq a lista está vindo em branco/nula.

Se não quiser colocar um ponto de Debug no Eclipse ao menos dê um sysout e veja oq está vindo na lista:

import br.com.caelum.vraptor.Resource;  
 import java.util.List;  
 import org.hibernate.Session;  
   
   
 @Resource  
 public class ProdutoController {  
   
     Session session = new HibernateUtil().getSession();  
   
     public List&lt;Produto&gt; lista() { 
         List&lt;Produto&gt; retorno = new ProdutoDAO(session).listaTudo();

         System.out.println(retorno); // Veja oq esta saindo aqui.. 
   
         return retorno;
     }  
   
      
 }

De qualquer forma dê uma estudada na Apostila FJ-28 que é especifica do VRaptor … e muito boa por sinal. :wink:

Lucas_Cavalcanti

xxabxx, a idéia não é rodar o lista.jsp diretamente, e sim a lógica do VRaptor associada (/produto/lista)

Criado 24 de outubro de 2011
Ultima resposta 24 de out. de 2011
Respostas 2
Participantes 3