3
respostas

Aula 11, não passa o valor do produtoId para adicionar no carrinho

Olá, não sei o que está acontecendo, mas ao acessar o método que vem da url carrinho/add, o produtoId está vindo nulo. Segue meus códigos abaixo:

<section class="buy-options clearfix">
            <form action='<c:url value="/carrinho/add" />'  method="post" class="container">
                <ul id="variants" class="clearfix">
                    <input type="hidden" value="${produto.id }" value="produtoId"/>
                    <c:forEach items="${produto.precos }" var="preco">
                        <li class="buy-option"><input type="radio" name="tipo"
                            class="variant-radio" id="tipo" value="${preco.tipo}"
                            checked="checked" /> <label class="variant-label">
                                ${preco.tipo} </label> <small class="compare-at-price">R$ 39,90</small>
                            <p class="variant-price">${preco.valor}</p></li>
                    </c:forEach>

                </ul>
                <button type="submit" class="submit-image icon-basket-alt"
                    alt="Compre Agora" title="Compre Agora${produto.titulo}"></button>
            </form>

        </section>


package br.com.casadocodigo.loja.controllers;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import br.com.casadocodigo.loja.daos.ProdutoDAO;
import br.com.casadocodigo.loja.models.CarrinhoCompras;
import br.com.casadocodigo.loja.models.CarrinhoItem;
import br.com.casadocodigo.loja.models.Produto;
import br.com.casadocodigo.loja.models.TipoPreco;

@Controller
@RequestMapping("/carrinho")
public class CarrinhoComprasController {

    @Autowired
    private ProdutoDAO produtoDAO;

    @Autowired
    private CarrinhoCompras carrinho;

    @RequestMapping("/add")
    public ModelAndView add(Integer produtoId, TipoPreco tipoPreco) {
        ModelAndView ModelAndView = new ModelAndView("redirect:/produtos");

        CarrinhoItem carrinhoItem = criaItem(produtoId, tipoPreco);
         carrinho.add(carrinhoItem);
        return ModelAndView ;
    }

    private CarrinhoItem criaItem(Integer produtoId, TipoPreco tipoPreco) {
        Produto produto = produtoDAO.find(produtoId);
        CarrinhoItem carrinhoItem = new CarrinhoItem(produto, tipoPreco);
        return carrinhoItem;
    }

}

Obrigado!

3 respostas

Vou começar com o chute mais básico... o input hidden ta ficando com valor vazio.. confere isso?

conseguiu resolver amigo? aqui esta dando o mesmo problema

No meu caso resolvi alterando a propriedade name do radioButton, no meu sistema uso tipoPreco, e nao apenas tipo

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