我希望Freemarker在调用我的宏之后保留换行符。
我已经搞砸了关闭标签<@test></@test>
而没有任何区别。我也尝试使用指令中的body
,但这是空的。
也许我可以在标签后访问模板内容,如果是换行符,那么我可以打印它。但这似乎有点混乱。
我的模板包含:
<@test/> <@test/>
<@test/>
<@test/>
哪个是印刷品:
test test
test
test
但我希望打印出来:
test test
test
test
这就是我定义指令的方式:
public class TestMacro implements TemplateDirectiveModel {
@Override
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
throws TemplateException, IOException {
env.getOut().append("test");
}
}
这是我将它添加到配置中的方式:
Configuration config = configurer.createConfiguration();
config.setSharedVariable("test", new TestMacro());
答案 0 :(得分:0)
白色空间条纹的工作方式(记录在案)。您可以在Configuration
完全关闭,但是在#if
- s等处会有很多不需要的空白区域,或者您可以添加<#nt>
- 在这些标签之后。
答案 1 :(得分:0)
如果您只想在特定模板中包含所有空格,则可以添加<#ftl strip_whitespace=false/>
。
否则,如果要在所有模板中实现此目的,可以在config
上设置属性config.setWhitespaceStripping(false);
如果要压缩模板中的某些空格,可以使用<#compress>...</#compress>
指令。