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

Problema PathVariable

O código funciona normalmente até o momento em que altero o RequestMapping e adiciono a anotação PathVariable. "HTTP Status 404 – Não Encontrado Type Status Report

Message /casadocodigo/produtoDetalhes/WEB-INF/views/produtos/detalhes.jsp"

Eu acredito que achei o erro, tudo funciona normalmente e até faz a query pela id no console mas por algum motivo a anotação parece que está mandando o nome do método antes da WEB-INF.

Segue o código na classe controller

    @RequestMapping(value = "produtoDetalhes/{id}")
    public ModelAndView detalhes(@PathVariable("id")Integer id) {
        ModelAndView modelAndView = new ModelAndView("produtos/detalhes");
        Produto produto = produtoDao.find(id);
        modelAndView.addObject("produto", produto);

        return modelAndView;


    }

E a jsp está salva como detalhes, não detalhe. Até esta mudança tudo ocorre normalmente.

2 respostas
solução!

Consegui resolver. O problema em sí não era a anotação, mas sim toda a vez que inseria alguma barra no caminho para URL o controller mandava o nome do método junto.

Voltando a classe de configurações web faltava uma barra na frente do caminho para as views.

    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");

Depois de colocar uma barra na frente de WEB-INF tudo voltou ao normal.

Oi ARTUR

Obrigado por compartilhar a solução.

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