Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Solução do Problema com s:mvcUrl somente na tela de Carrinho

O tópico "Problema com s:mvcUrl" se tornou algo viral através dos anos neste curso de Spring, e como de costume seguindo todos os passos do curso eu também me deparei com este erro ao utilizar includes e tag de templates. Fiquei muito curioso por ser o mesmo cabeçalho e gerar o link correto com s:mvcUrl nas paginas "/" e "/produtos**", mas não gerar o link correto na página "/carrinho", assim gerando resultados como o conhecido "http://localhost:8088/casadocodigo/WEB-INF/views/carrinho/itens.jsp"

Dentro dos tópicos do forum sempre via a mesma resposta em abandonar esta forma de chamar s:mvcUr e voltar a montar a url de forma mais tradicional, mas ainda não me convencia que era este o problema. Para fazer alguns testes criei outra pagina somente com os Templates de cabeçalho e rodapé, e outro controller para fazer a chamada da página de varias formas.

Dentre estes testes descobri algo simples que realmente deu um resultado surpreendentemente diferente. No ProdutoController todos os caminhos gerados dentro da chamada de ModelAndView não se usava a barra inicial por exemplo "produtos/detalhe", contudo no primeiro método que foi criado no CarrinhoComprasController que é o método itens() o ModelAndView é chamado com o caminho "/carrinho/itens" com a barra inicial, e isso funcionou perfeitamente para o encaminhamento da URL mas o Spring quando vai resolver os link com o s:mvcUrl aparentemente se perde com esta barra extra e coloca no link o endereço do arquivo ao invés do mapeamento dele.

A solução como visto é bem simples ao retirar esta barra extra e deixar o retorno da função itens do CarrinhoComprasControler como "return new ModelAndView("carrinho/itens");" o problema vai cessar.

Fica aqui esta minha colaboração para todos que se depararem com este problemas, que na verdade é uma falta de atenção porque o professor mesmo fala que não é necessário esta barra antes.

1 resposta
solução!

Muito bom Fábio, obrigado por compartilhar