1
resposta

RESOURCE OU WEB-INF

Olá gostaria de saber onde deixar as VIEWS do projeto. Nesse curso deixamos em WEB-INF no de Spring Boot deixamos em RESOURCES.

Minhas Views estão em WEB-INF mas mesmo assim não estão sendo chamadas

Tenho essas configurações setadas.

package org.casadocodigo.configuracoes;

import org.casadocodigo.controllers.HomeController;
import org.casadocodigo.daos.ProdutosDAO;
import org.casadocodigo.models.Produtos;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@EnableWebMvc
@ComponentScan(basePackageClasses = {HomeController.class, ProdutosDAO.class, Produtos.class})
public class AppWebConfiguration {

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

        return resolver;
    }

}
package org.casadocodigo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Boot {

    public static void main(String[] args) {
        SpringApplication.run(Boot.class, args);
    }

}
package org.casadocodigo.configuracoes;

import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.Filter;

public class ServletSpringMVC extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{AppWebConfiguration.class, JPAConfiguration.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
        encodingFilter.setEncoding("UTF-8");

        return new Filter[]{encodingFilter};
    }
}
1 resposta

Olá Luiz, tudo bem? Peço desculpas pela demora no retorno! Mas você está usando o Spring com Thymeleaf, é isso? Nas versões mais recentes do Spring boot deixar as views dentro de src/main/resources/templates e como você está usando o Spring boot acho que seria bastante proveitoso assistir as novas versões desses dois cursos de Spring que são os cursos:

Espero ter ajudado e bons estudos!