Macros Freemarker在宏后删除换行符
我希望Freemarker在调用我的宏后保留换行符 我把标签的关闭搞得一团糟,Macros Freemarker在宏后删除换行符,macros,whitespace,freemarker,Macros,Whitespace,Freemarker,我希望Freemarker在调用我的宏后保留换行符 我把标签的关闭搞得一团糟,没有任何区别。我也尝试过使用指令中的主体,但它是空的 也许我可以访问标签后面的模板内容,如果是换行符,那么我可以打印它。但这似乎有点混乱 我的模板包含: <@test/> <@test/> <@test/> <@test/> 但我想把它打印出来: test test test test 我是这样定义指令的: public class TestMacro imp
没有任何区别。我也尝试过使用指令中的主体
,但它是空的
也许我可以访问标签后面的模板内容,如果是换行符,那么我可以打印它。但这似乎有点混乱
我的模板包含:
<@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());
这就是空白条带化的工作原理(这是有文档记录的)。您可以在
配置中完全关闭if,尽管这样会在#if
-s等周围留下大量不需要的空白,或者可以在这些标记后添加
-s。这就是空白条带的工作方式(这是有文档记录的)。您可以在配置中完全关闭if,尽管这样会在\if
-s等周围留下大量不需要的空白,或者您可以在这些标记后添加
-s。如果您只想在特定模板中包含所有空白,您可以添加
否则,如果要在所有模板中实现这一点,可以在配置文件上设置属性
config.setWhitespaceStripping(false);
如果要压缩模板中的一些空白,可以使用..
指令。如果只想在特定模板中包含所有空白,可以添加
否则,如果要在所有模板中实现这一点,可以在配置文件上设置属性
config.setWhitespaceStripping(false);
如果您想压缩模板中的一些空白,可以使用…
指令。谢谢您将指针指向正确的方向,但这并不能完全回答问题。我想了解有关如何在配置中设置它的更多详细信息。我发现在回答问题时,示例总是很有用的。这取决于您如何配置FreeMarker,这通常取决于您使用的框架。通常类似于configuration.setWhiteSpaceStriping(false)或文件中的whitespace\u stripping=false
.properties
等。感谢指向正确方向的指针,但这并不能完全回答问题。我正在寻找有关如何在配置中设置它的更多详细信息。我发现在回答问题时,示例总是很有用的。这取决于您如何配置FreeMarker,这通常取决于您使用的框架。通常类似于configuration.setWhiteSpaceStriping(false)或文件中的空白\u stripping=false
.properties
等。