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

Spring nao encontra os mapeamentos

Ola, eu criei o controller conforme o código abaixo:

package br.com.casadocodigo.loja.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ProdutosController {

    @RequestMapping("/produtos/form")
    public String form(){
        System.out.println("Entrou no ProdutosController");
        return "produtos/form";
    }
}

creio que esteja correto com o trecho da vídeo aula, porem recebo o erro 404 no navegador e a mensagem"Entrou no ProdutosController" no console aparece. minha estrutura de pasta esta dessa forma: WEB-INF |----------views |----------------produtos |---------------------------form.jsp

O que pode estar aconttecendo??

1 resposta
solução!

Olá Michel,

Você fez a configuração na classe AppWebConfiguration corretamente?

É necessário fazer a seguinte configuração

//HABILITA O WEB MVC DO SPRING
@EnableWebMvc
@ComponentScan(basePackageClasses = { HomeController.class, ProdutoDao.class, FileSaver.class, CarrinhoCompras.class })
public class AppWebConfiguration extends WebMvcConfigurerAdapter {

    // CLASSE DO SPRING
    // RESOLVEDOR INTERNO DE PÁGINAS
    // TODA CLASSE GERENCIADA PELO SPRING PRECISA DA ANOTAÇÃO BEAN
    @Bean
    public InternalResourceViewResolver internalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        // Prefixo e Sufixo
        // PREFIXO QUE SERA JUNTADO COM O O RETORNO DO HomeController
        resolver.setPrefix("/WEB-INF/views/");
        // Tipos dos arquivos
        resolver.setSuffix(".jsp");

        return resolver;
    }
...

Outra classe também necessária para a configuração é a ServletSpringMVC. Segue o código:

//HERDA AS CONFIGURAÇÕES DO SPRING
public class ServletSpringMVC extends AbstractAnnotationConfigDispatcherServletInitializer{

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return null;
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        //CLASSE QUE SERÁ UTILIZANDO COMO SENDO A CLASSE DE CONFIGURAÇÃO DO PROJETO WEB
        //TODAS AS CLASSES DE CONFIGURAÇÃO DEVERÃO SER ADICIONADAS AQUI
        return new Class[] {AppWebConfiguration.class, JPAConfiguration.class};
    }

    @Override
    protected String[] getServletMappings() {
        //URL QUE O SPRING IRÁ MAPEAR
        return new String[] {"/"};
    }

...

Espero que tenha ajudado.