Spring 启动 - Thymeleaf 模板

Spring Boot - Thymeleaf template

我正在使用 Spring Boot 1.2.7 和 Thymeleaf。

所有 html 页面都在 src/main/resource/templates 文件夹中,当我在控制器中说 return "<viewName>" 时一切正常。

现在,我想为 AngularJS 使用不同的文件夹结构。

想将页面移动到其他文件夹,比如 webapps/pages

尝试如下配置解析器,

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
    @Bean
    public ServletContextTemplateResolver getViewResolver() {
        ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
        resolver.setPrefix("webapps/pages/");
        resolver.setSuffix(".html");
        resolver.setTemplateMode("LEGACYHTML5");
        return resolver;
    }

    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

仍然无法正常工作...我是否缺少任何其他配置,或者在这种情况下我不应该使用 Thymeleaf 吗?

pom.xml供大家参考,

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
</dependencies>

如果不想使用标准配置,可以在application.properties(或application.yml)文件中配置一个TemplateResolver。您可以在 the docs.

中找到可用选项的列表

然后为额外的TemplateResolver引入一个新的@Configuration

@Configuration
public class ThymeleafConfig {

    @Autowired
    private SpringTemplateEngine templateEngine;

    @PostConstruct
    public void init() {
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();

        resolver.setPrefix("webapps/pages/");
        resolver.setSuffix(".html");
        resolver.setTemplateMode("LEGACYHTML5");
        resolver.setOrder(templateEngine.getTemplateResolvers().size());

        templateEngine.addTemplateResolver(resolver);
    }

}