我在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
这些似乎都不起作用。
答案 0 :(得分:2)
没有开箱即用,因为TemplateLoader
接口(这是Spring和其他人实现从某处加载模板所实现的)没有目录列表功能,因此核心FreeMarker功能无法做到这一点。
如果您可以从Java代码配置FreeMarker,则可以动态组合文件名列表,然后将其提供给Configuration.setAutoIncludes(List templateNames)
。至少对于一些Spring Boot组件,可以在应用application.properties
的属性后挂钩您自己的设置代码,但是我还没有检查过它是否与FreeMarker Spring Boot功能也是如此。