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

Minha lista de produtos não aparece

Boa noite galera, estou com um probleminha, no meu banco aparece a lista de produtos, mais na interface só aparece minha tabela Lista de produtos e as colunas, o que pode ser?

public List<Produto> listar() {
        return manager.createQuery("select p from Produto p", Produto.class).getResultList();
    }
@Controller
public class ProdutosController {

    @Autowired
    private ProdutoDAO produtoDao;

    @RequestMapping("/produtos/form")
    public ModelAndView form() {
        ModelAndView modelAndView = new ModelAndView("produtos/form");
        modelAndView.addObject("tipos", TipoPreco.values());
        return modelAndView;
    }

    @RequestMapping(value = "/produtos", method = RequestMethod.POST)
    public String gravar(Produto produto) {
        System.out.println(produto);
        produtoDao.gravar(produto);
        return "/produtos/ok";
    }

    @RequestMapping(value ="/produtos", method = RequestMethod.GET)
    public ModelAndView listar() {
        List<Produto> produtos = produtoDao.listar();
        ModelAndView mav = new ModelAndView("produtos/lista");
        mav.addObject("produtos", produtos);
        return mav;
    }

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

<!DOCTYPE html>

Lista de produtos

TítuloDescriçãoPáginas
${produto.titulo}${produto.descricao}${produto.paginas}

6 respostas

Boa noite, olha não entendo nada de spring, porem nesse metodo nao tinha que receber uma lista?

@RequestMapping(value ="/produtos", method = RequestMethod.GET)
    public ModelAndView listar() {
        List<Produto> produtos = produtoDao.listar();
        ModelAndView mav = new ModelAndView("produtos/lista");
        mav.addObject("produtos", produtos);
        return mav;
    }

tipo

@RequestMapping(value ="/produtos", method = RequestMethod.GET)
    public List<Produto>listar() { // trocar por uma lista?
        List<Produto> produtos = produtoDao.listar();
        ModelAndView mav = new ModelAndView("produtos/lista");
        mav.addObject("produtos", produtos);
        return mav;
    }

Como disse não entendo nada de spring e apenas um chute kk

solução!

Priscila, cola o lista.jsp tbm, talvez o problema esteja lá.

@Priscila

Poderia por favor colocar o código do seu arquivo lista.jsp?

Eh vdd esqueci rsrs, obrigada!

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@  taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Livro de Java, iPhone, Ruby, PHP e muito mais - Casa do
    código</title>
</head>
<body>
    <h1>Lista de produtos</h1>

    <table>
        <tr>
            <td>Título</td>
            <td>Descrição</td>
            <td>Páginas</td>
        </tr>
        <c:forEach items="${produtos }" var="produtos">
            <tr>
                <td>${produto.titulo}</td>
                <td>${produto.descricao}</td>
                <td>${produto.paginas}</td>
            </tr>
        </c:forEach>
    </table>

</body>
</html>

Gente acabei de descobrir o erro, no forEach o var estava errado (var ="produtos") em vez de (var = "produto"). As vezes deixamos passar pequenos detalhes, obrigada rapazes pela ajuda!!

Gente acabei de descobrir o erro, no forEach o var estava errado (var ="produtos") em vez de (var = "produto"). As vezes deixamos passar pequenos detalhes, obrigada rapazes pela ajuda!!

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