Шаблоны скорости - новая линия - PullRequest
14 голосов
/ 28 декабря 2010

Я работал с движком Apache Velocity и пользовательским шаблоном.
Дело в том, что я не смог сгенерировать строку с соответствующими переносами строк. Я перепробовал почти все, что нашел, например, с использованием $ esc.n и $ esc.newline (я уже использую escape-инструменты в своем проекте), но похоже, что версия, которую я сейчас использую, не поддерживает ее (1.4 ), проверил, будет ли работать '\ n', '\\ n' и даже '\\\ n', но то же самое.

У кого-нибудь есть какое-нибудь решение этого вопроса?

Ответы [ 5 ]

17 голосов
/ 29 декабря 2010

У нас были проблемы с символами новой строки, и в итоге мы добавили свойство в VelocityContext:

VelocityContext ctx = new VelocityContext();
ctx.put("newline", "\n");

Затем, где бы нам ни понадобилось использовать символ новой строки, мы ссылались на переменную контекста:

$newline

Мы используем это в тех случаях, когда нам нужно заменить символы новой строки на.

7 голосов
/ 03 декабря 2013

Мне нужна новая строка для генерации JavaScript. Ну, конечно, не нужно , но это облегчило чтение сгенерированного кода при разработке В этом случае я просто установил переменную, чтобы Velocity было легче читать. Это все, что вам нужно:

код скорости:

#set( $newline="
")
#set( $jsCode = "var bling='blang';{$newline}var bark='bite';{$newline}" )
<script>
$jsCode</script>

Результат:

<script>
var bling='blang';
var bark='bite';
</script>
4 голосов
/ 14 декабря 2011

Если вы используете Velocity 1.5 или более позднюю версию, вы также можете просто вставить туда новую строку:

#set( $foo = "this has a 
line break" ) 
4 голосов
/ 29 декабря 2010

Используете ли вы Velocity для создания HTML-контента?В этом случае помните, что вам нужно использовать <br>, а не символ новой строки.

Если вы действительно хотите использовать символ новой строки, вы просто помещаете фактический символ новой строки, то есть нажмите ввод.В Velocity нет escape-последовательностей, подобных \ n.

0 голосов
/ 29 мая 2014

Возможно, проще всего использовать Velocity EscapeTool.

См. Ссылку: https://velocity.apache.org/tools/releases/2.0/javadoc/org/apache/velocity/tools/generic/EscapeTool.html#getNewline%28%29

Пример использования: Разрыв строки здесь: $ esc.newline Это на новой строке.

...