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

Aula 11 - Não direciona para redirect:/produtos

Alguma coisa está dando errado e não consegui percebor o que é. Ao clicar para adicionar o produto no carrinho, ele dá erro 404, direciona para http://localhost:8080/casadocodigo/carrinho/add ao invés de ir para a listagem dos protdutos. Coloquei um sysout no add do carrinho e percebi que ele nem chama este método add. Creio que seja apenas algum detalhe que esteja acontecendo.

Aqui está o form do detalhe .jsp:

<form action='<c:url value="/carrinho/add"/>' method="post" class="container">
        <ul id="variants" class="clearfix">
        <input type="hidden" value="${produto.idProduto }" name="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  itemscope class="variant-label" >${preco.tipo } </label>
                <small class="compare-at-price">${preco.valor}</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>

CarrinhoController:

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


    @Autowired
    private ProdutoDao produtoDao;

    @Autowired
    private CarrinhoCompras carrinho;

    @RequestMapping("/add")
    public ModelAndView add(Integer produtoId, TipoPreco tipoPreco){
        //Ele nao entra aqui
        System.out.println("Entrou aqui no carrinho/add");

        ModelAndView modelAndView = new ModelAndView("redirect:/produtos");

        CarrinhoItem carrinhoItem = criaItem(produtoId, tipoPreco);

        carrinho.add(carrinhoItem);

        return modelAndView;

    }

AppWebConfiguration:

@EnableWebMvc
@ComponentScan(basePackageClasses={HomeController.class, ProdutoDao.class, FilerSaver.class, CarrinhoCompras.class})
public class AppWebConfiguration extends WebMvcConfigurerAdapter{

    @Bean
    public InternalResourceViewResolver internalResourceViewResolver (){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");

        return resolver;
    }

Ele nem entra no CarrinhoController. O que será que está ocorrendo? Obrigado.

2 respostas
solução!

Opa, olhei aqui o código e não achei o erro...pode colocar o projeto no github para eu baixar e testar?

Acho que deu certo. Deve ser algum problema no meu Eclipse. Exportei/Importei tudo e agora deu certo. Obrigado.