Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não carrega a listagem de produtos no lista.jsp

Olá! No meu lista.jsp não está listando os produtos, traz somente o cabeçalho da tabela. E não estou conseguindo debugar para identificar o problema.

Alguém pode me ajudar, por favor?

Segue código do ProdutoController:

package br.com.caelum.vraptor.controller;

import java.util.List;

import javax.persistence.EntityManager;

import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.dao.ProdutoDao;
import br.com.caelum.vraptor.model.Produto;
import br.com.caelum.vraptor.util.JPAUtil;

@Controller
public class ProdutoController {

    @Path("/")
    public void inicio(){

    }

    @Path("/produto/lista")
    public List<Produto> lista(){
        EntityManager em = JPAUtil.criaEntityManager();
        ProdutoDao dao = new ProdutoDao(em);
        return dao.lista();

    }

    @Path("/produto/sobre")
    public void sobre(){

    }

}

e o código do lista.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
    <link rel="stylesheet" type="text/css" href="../bootstrap/css/bootstrap.css">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
    </head>
    <body>
        <div class="container">
        <h1>Lista de produtos</h1>
        <table class="table table-stripped table-over table-bordered">
            <thead>
                <tr>
                    <th>Nome</th>
                    <th>Valor</th>
                    <th>Quantidade</th>
                </tr>
            </thead>
            <tbody>
                <c:forEach items="${productList}" var="produto">
                    <tr>
                        <td>${produto.nome}</td>
                        <td>${produto.valor}</td>
                        <td>${produto.quantidade}</td>
                    </tr>
                </c:forEach>
            </tbody>
        </table>
        </div>
    </body>
</html>
2 respostas

Olá Marciel,

Poste o código do seu ProdutoDao também, para podermos avaliar se não há algo inconsistente no seu método lista, por favor.

solução!

Olá Harley!

Já descobri meu erro. No ForEach da lista.jsp eu coloquei o nome de produto em inglês:

<c:forEach items="${productList}" var="produto">

Alterei para o portugues (para o prefixo da classe controller)

<c:forEach items="${produtoList}" var="produto">

E funcionou!

Agora entendi melhor essa questão da convenção do VRaptor,

No mais, muito obrigado por ter vindo me ajudar. Até mais.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software