首页 文章

Spring Boot - Thymeleaf模板

提问于
浏览
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>

1 回答

  • 1

    如果您不想使用标准配置,可以在 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);
        }
    
    }
    

相关问题