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" 被解释为文本
我做错了什么?是否需要任何额外的 spring 引导配置?
对 Freemarker 标签使用“<>”而不是“[]”。
您需要将 FreeMarker 的 tag_syntax
配置设置设置为 auto_detect
或 square_bracket
。为了向后兼容,默认值为 angle_bracket
。另一种选择是以 [#ftl]
开始模板,即使 tag_syntax
是 angle_bracket
.
也会启用方括号语法
我正在尝试使用 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" 被解释为文本
我做错了什么?是否需要任何额外的 spring 引导配置?
对 Freemarker 标签使用“<>”而不是“[]”。
您需要将 FreeMarker 的 tag_syntax
配置设置设置为 auto_detect
或 square_bracket
。为了向后兼容,默认值为 angle_bracket
。另一种选择是以 [#ftl]
开始模板,即使 tag_syntax
是 angle_bracket
.