如何在Spring Boot中自动包含整个Freemarker模板包?

时间:2016-12-06 17:57:14

标签: spring-boot freemarker

我在layout.ftl中配置application.properties文件自动包含,如下所示:

spring.freemarker.settings.auto_include = macro/layout.ftl

这很好,但是现在我在macro包中添加了越来越多的宏,所以我的配置正在慢慢泛滥成像:

spring.freemarker.settings.auto_include = macro/layout.ftl, macro/macro1.ftl, macro/macro2.ftl, macro/macro3.ftl, macro/macro4.ftl

是否可以一次自动包含整个macro包裹?我试过了:

spring.freemarker.settings.auto_include = macro
spring.freemarker.settings.auto_include = macro/
spring.freemarker.settings.auto_include = macro/*
spring.freemarker.settings.auto_include = macro/*.ftl

这些似乎都不起作用。

1 个答案:

答案 0 :(得分:2)

没有开箱即用,因为TemplateLoader接口(这是Spring和其他人实现从某处加载模板所实现的)没有目录列表功能,因此核心FreeMarker功能无法做到这一点。

如果您可以从Java代码配置FreeMarker,则可以动态组合文件名列表,然后将其提供给Configuration.setAutoIncludes(List templateNames)。至少对于一些Spring Boot组件,可以在应用application.properties的属性后挂钩您自己的设置代码,但是我还没有检查过它是否与FreeMarker Spring Boot功能也是如此。