Boa noite estou com um erro na hora de iterar meu carrinhoItem
, pelo oq pesquisei esse erro é relacionado a quando vc quer itera uma lista mas nao estou fazerndo isso.
o meu form
de envio para o Controller
do CarrinhoItem
fica em uma jsp
de categorias, ou seja, na minha pagina principal, tenho botões que enviam um input
com o valor da pesquisa da categoria e faço a busca no banco, esse retorno de metodo é uma lista
talves seja isso,
segue meu form:
<form action="/rprvidros/carrinho/add" method="post">
<div class="container">
<c:forEach items="${produto}" var="produto">
<div class="produtos-categoria">
<img src="${produto.path }">
<p class="produto-titulo">${produto.descricao}</p>
<p class="preco-produto">R$</p>
<p class="produto-carrinho">
<button type="submit" class="botao-carrinho">
<span class="icon-shopping-cart"> </span>
Adicionar ao Carrinho </button></p>
<input type="hidden" name="produtoId" value="${produto.id}" />
<input type="hidden" name="${_csrf.parameterName }" value="${_csrf.token }" />
</div>
</c:forEach>
</div>
</form>
meu Controller:
@Controller
@RequestMapping("/carrinho")
public class CarrinhoComprasController {
@Autowired
private ProdutoDao dao;
@RequestMapping("/add")
public ModelAndView add(Integer produtoId) {
ModelAndView modelAndView = new ModelAndView("detalhe");
PedidoItem criaItem = criaItem(produtoId);
modelAndView.addObject("produto", criaItem);
return modelAndView;
}
private PedidoItem criaItem(Integer produtoId) {
Produtos produto = dao.find(produtoId);
PedidoItem pedidoItem = new PedidoItem(produto);
System.out.println(produto);
return pedidoItem;
}
}
meu metodo find:
public Produtos find(Integer id){
return (Produtos) manager.createQuery("select p from Produtos p where p.id = " + id).getSingleResult();
}
minha classe PedidoItem:
@Entity
@Component
public class PedidoItem {
public PedidoItem(Produtos produto) {
this.produto = produto;
}
public Produtos getProduto() {
return produto;
}
public void setProduto(Produtos produto) {
this.produto = produto;
}
@Id
private Integer id;
@OneToOne
private Produtos produto;
@ManyToOne
@JoinColumn(name = "pedido_id")
private Pedido pedido;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Pedido getPedido() {
return pedido;
}
public void setPedido(Pedido pedido) {
this.pedido = pedido;
}
e minha jsp de detalhe:
<c:forEach items="${produto}" var="produto">
<div class="produtos-categoria">
<img src="${item.path }">
<p class="produto-titulo">${produto.descricao}</p>
<p class="preco-produto">R$ ${produto.preco}</p>
<p class="produto-carrinho">
</div>
</c:forEach>
muito obrigado.