2015-08-02 4 views
0

Я хотел бы, чтобы Freemarker сохранил новую строку после звонков на мой макрос.Freemarker удаляет новые строки после макроса

Я испортил с закрытием тега <@test></@test>, не имеет никакого значения. Я также пытался работать с директивой body, но это значение равно null.

Возможно, я смог получить доступ к содержимому шаблона после тега, и если это новая строка, я могу его распечатать. Но это кажется немного грязным.

Мой шаблон содержит:

<@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

Вы можете добавить <#ftl strip_whitespace=false/>, если хотите просто указать все пробелы в определенном шаблоне.

В противном случае, если вы хотите, чтобы достичь этого во всех шаблонов, вы можете установить свойство на конфигурации

config.setWhitespaceStripping(false); 

Если вы хотите сжать некоторые пробелы в шаблоне, вы можете использовать <#compress>...</#compress> директиву.

0

Вот как белое пространство чередование работы (и это документально). Вы можете полностью отключиться, если полностью выключить Configuration, хотя тогда вы получите много нежелательного белого пространства около #if -s и т. Д., Или вы можете добавить <#nt> -s после этих тегов.

+0

Спасибо за указатель в правильном направлении, но это не совсем полностью ответит на вопрос. – Rian

+0

Какую дополнительную информацию вы ищите? – ddekany

+0

Я искал дополнительную информацию о том, как установить его в конфигурации. Я считаю, что примеры всегда полезны при ответе на вопросы. – Rian

Смежные вопросы