spring boot - comment définir correctement l'emplacement des modèles?

Après avoir lutté pendant un certain temps, le Printemps de l'application (et le printemps de démarrage, d'ailleurs), il semble que je suis enfin sur le point de le faire fonctionner.

J'ai changé par le biais de la dépendance des résolutions et maven build déjà. L'Application démarre (et très vite!!) mais lorsque j'essaie d'accéder à

localhost:8080

J'obtiens le message du navigateur à chaque fois que j'essaie d'atteindre l'application de la page de destination:

HTTP Status 500 - Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template "home/homeNotSignedIn", template might not exist or might not be accessible by any of the configured Template Resolvers

La src/main/resourcesdossier est

src/main/resources
    static //CSS, IMG and JS
    templates //html
    application.properties
    log4j.properties

Maintenant, je comprends que j'ai peut être un mélange des concepts, mais sur mon ApplicationConfiguration.java j'ai ceci:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "b.c.g.c")
public class ApplicationConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    @Description("Thymeleaf template resolver serving HTML 5")
    public ServletContextTemplateResolver templateResolver() {
        ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
        templateResolver.setCacheable(false);
        templateResolver.setTemplateMode("HTML5");
        templateResolver.setCharacterEncoding("UTF-8");
        templateResolver.setPrefix("classpath:/templates/");
        templateResolver.setSuffix(".html");

        return templateResolver;
    }

    @Bean
    @Description("Thymeleaf template engine with Spring integration")
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.addDialect(new SpringSecurityDialect());
        templateEngine.addDialect(new LayoutDialect(new GroupingStrategy()));
        templateEngine.setTemplateResolver(templateResolver());

        return templateEngine;
    }

    @Bean
    @Description("Thymeleaf view resolver")
    public ViewResolver viewResolver() {

        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine(templateEngine());
        viewResolver.setCharacterEncoding("UTF-8");
        viewResolver.setCache(false);
        viewResolver.setOrder(1);

        return viewResolver;
    }

    //other beans
}

Et, sur application.properties, j'ai ceci:

spring.thymeleaf.check-template-location=true
spring.thymeleaf.prefix=classpath:templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false

Si j'voir ces extraits de dire la même chose, je parie que l'un peut aller, non?

Donc, deux questions, en fait,

1) comment s'assurer de Printemps + Thymeleaf comprendre où trouver les modèles?

2) comment faire pour obtenir l'application pour répondre à localhost:8080/appName au lieu de localhost:8080/?

Est-il une raison de la configuration de tout cela? L'ensemble de ce modèle de résolution est la valeur par défaut de configuration automatique.

OriginalL'auteur gtludwig | 2016-09-01