Boa tarde pessoal.
Recentemente passei pelo mesmo problema que a Juliana Torres (https://cursos.alura.com.br/forum/topico-problema-com-a-exclusao-dos-itens-e-finalizacao-dos-pedidos-mesmo-depois-de-atualizar-a-tag-form-form-48022#630684), ao clicar em link criado com o mvcUrl, eu recebia erro 404 na seguinte URL: http://localhost:8080/casadocodigo/WEB-INF/views/carrinho/itens.jsp/carrinho/remover?produtoId=13&tipoPreco=COMBO
O Problema é que o Spring estava tentando colocar o caminho do link após a chamada da JSP, sendo que, de acordo com o padrão da pasta WEB-INF, não é possível chamar uma .jsp direto na url.
Mas pq isso acontecia?
O motivo é bem mais simples do que parece.
No método itens da classe CarrinhoDeComprasController, ao informamos qual será a view apresentada existia um erro.
@RequestMapping(method = RequestMethod.GET)
public ModelAndView itens() {
return new ModelAndView("/carrinho/itens");
}
Repare que nós estamos retornando a / antes do carrinho e por algum motivo que ainda estou pesquisando, o Spring entende que qualquer link dessa view deve ser inserido o path da jsp na frente.
A solução é tirar o / inicial. O código correto é:
@RequestMapping(method = RequestMethod.GET)
public ModelAndView itens() {
return new ModelAndView("carrinho/itens");
}
Bom, abri o tópico no caso de pessoas passarem por esse problema não precisarem fazer nenhuma gambi para contornar isso.
Obs: Se alguém souber o motivo pelo qual o Spring faz isso, ficarei feliz em saber.
Att, Júlio Falbo