Spring Boot + Freemarker 主模板

Spring Boot + Freemarker master template

我正在尝试使用 spring 引导和 freemarker 作为模板引擎来构建应用程序。我遇到的问题是,我想为我所有的页面制作一个 "master template" 来使用。我发现这可以在 Freemarker 中使用宏实现。这就是我的 indexmaster.ftl 的样子:

[#macro indexmaster title="defaultTitle"]
<html>
    <head> css stuff </head>
    <body>
        <div id="content">[#nested /]</div>
    </body>
</html>
[/#macro]

在其他页面中,我使用这样的宏:

[#import "/WEB-INF/ftl/master/indexmaster.ftl" as layout /]
[@layout.indexmaster title="My title"]
 ...rest of the page
[/@layout.indexmaster]

我面临的问题是,当我访问页面时,freemarker "code" 被解释为文本

click me

我做错了什么?是否需要任何额外的 spring 引导配置?

对 Freemarker 标签使用“<>”而不是“[]”。

您需要将 FreeMarker 的 tag_syntax 配置设置设置为 auto_detectsquare_bracket。为了向后兼容,默认值为 angle_bracket。另一种选择是以 [#ftl] 开始模板,即使 tag_syntaxangle_bracket.

也会启用方括号语法