Estou estudando a apostila e não estou conseguindo listar os registros do banco de dados na minha página jsp.
Seguem os itens que estou fazendo (capítulo 7 página 45).
Crie o arquivo lista.jsp na pasta /WEB-INF/jsp/produtos.
Quando acesso a página acima, apenas retorna o header sem os valores dos campos. No console do eclipse aparece o seguinte:
Hibernate:
select
this_.id as id0_0_,
this_.descricao as descricao0_0_,
this_.nome as nome0_0_,
this_.preco as preco0_0_
from
Produto this_
Antes que me perguntem se existem dados na tabela, já adianto que sim, criei o banco fj28, tabela produto e todos os campos no mysql e populei os registros.
Boa tarde!
Você pode postar seu ProdutosController? Uma dica: no método lista da classe ProdutosController, coloque um System.err.println com a lista de itens que você está retornando. Com esse tipo de ‘debug’ (ou log) é possível saber se existem dados vindo do banco (veja que não falei pra você ver se tem dados no banco, só pedi pra mostrar a lista que vem do banco).
Inclui o comando System.err.println e o console exibiu o seguinte:
Hibernate:
select
this_.id as id0_0_,
this_.descricao as descricao0_0_,
this_.nome as nome0_0_,
this_.preco as preco0_0_
from
Produto this_
[br.com.caelum.goodbuy.modelo.Produto@8c858a]
Lucas_Cavalcanti
uma dúvida: vc está com a declaração da taglib c no arquivo? posta ela aqui por favor?
tanto é que quando digito a tag <c:forEach> o eclipse consegue reconhecer e auto-completar. Será que está faltando algum jar ?
No mesmo projeto tenho uma classe que inclui os dados na tabela pelo hibernate normalmente, sem problema nenhum.
Lucas_Cavalcanti
se vc manda ver o fonte da página gerada, aparecem os dados lá?
X
xscorpion
segue fonte da página gerada
<?xml version="1.0" encoding="ISO-8859-1" ?>
lista
e ve se o “#######” aparece mais de uma vez na mesma requisição.
PS: coloque seu código entre e
X
xscorpion
segue minha página lista.jsp
<?xml version="1.0" encoding="ISO-8859-1" ?><%@pagelanguage="java"contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><title>lista</title></head><body><table><thead><tr><th>Nome</th><th>Descricao</th><th>Preco</th></tr></thead><tbody><c:forEachitems="${produto.List }"var="produto"><tr><td>${produto.nome }</td><td>${produto.descricao }</td><td>${produto.preco }</td></tr></c:forEach></tbody></table></body></html>
Onde vc quer que eu coloque o System.err.println ?
Lucas_Cavalcanti
no lista() do controller
Lucas_Cavalcanti
<c:forEachitems="${produto.List }"var="produto">
tá errado!
o certo é:
<c:forEachitems="${produtoList }"var="produto">
tinha um . a mais
X
xscorpion
Nossa Lucas, que vacilo meu !!! Nem tinha reparado nisso, coisa de principiante mesmo rsrsrs !!!
Hj não consigo mais testar mas amanhã retorno p/ vc. Muito obrigado.
X
xscorpion
Lucas, testei novamente com a alteração que vc me passou e funcionou !!! Vou continuar estudando a apostila e caso surjam mais dúvidas espero tirar com vc, estou gostando bastante do vraptor, obrigado.