0

我正在使用 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>
4

1 回答 1

1

如果您不想使用标准配置,您可以TemplateResolverapplication.properties(或)文件中配置一个。您可以在文档application.yml中找到可用选项的列表。

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

@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);
    }

}
于 2015-10-27T12:41:36.240 回答