默认情况下,Spring Boot 应用程序在 classpath://templates
下搜索 thymeleaf 模板我们如何添加一个解析器 例如,我们需要使用 FileTemplateResolver 从本地目录中搜索模板,如 "c:\MyTemplates" ?
您可以通过调用 setTemplateResolvers 方法或使用 FileTemplateResolver
调用 addTemplateResolver 方法在
TemplateEngine上添加更多模板解析器。
@Configuration
public class ThymeleafExtension {
@Autowired
private SpringTemplateEngine templateEngine;
@PostConstruct
public void extension() {
FileTemplateResolver resolver = new FileTemplateResolver();
resolver.setPrefix("D:\\templates\\");
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML5");
resolver.setOrder(templateEngine.getTemplateResolvers().size());
resolver.setCacheable(false);
templateEngine.addTemplateResolver(resolver);
}
}
对之前的答案略有改进:
@Configuration
public class ThymeleafConfig {
public ThymeleafConfig(TemplateEngine templateEngine) {
templateEngine.addTemplateResolver(new StringTemplateResolver());
}
}
在春季启动时,Thymealeaf 解析器会自动连接到
TemlpateEnging
。您可以使用 @Bean
注释执行与 @m4rtin 答案非常相似的操作:
@Configuration
public class ThymeleafExtension {
@Bean
public ITemplateResolver myFileTemlpateResolver() {
FileTemplateResolver resolver = new FileTemplateResolver();
resolver.setPrefix("D:\\templates\\");
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML5");
resolver.setOrder(templateEngine.getTemplateResolvers().size());
resolver.setCacheable(false);
return resolver;
}
}