Текстовый шаблон Velocity с одной строкой foreach - PullRequest
1 голос
/ 05 июля 2011

Я использую шаблоны скорости для создания текстовых писем для системы уведомлений.У меня есть список POJO "Адресата", которые содержат идентификатор пользователя и адрес электронной почты.Я хочу перебрать эти POJO и вывести идентификатор пользователя в одну строку (и в конечном итоге разделить каким-либо разделителем, таким как запятые).У меня проблемы с форматированием вывода.Например:

For Info:         #foreach( $addressee in $info_addressees )$addressee.userId #end
For Action:       #foreach( $addressee in $action_addressees )$addressee.userId #end

К сожалению, это не создает новую строку после каждого цикла foreach.Итак, я получаю что-то вроде:

Для информации: user1 user2 user3 Для действий: user4 user 5 user6

Единственный способ, которым я могу добавить новую строкув конце каждого цикла foreach добавляются некоторые дополнительные символы, такие как:

For Info:         #foreach( $addressee in $info_addressees )$addressee.userId END #end
For Action:       #foreach( $addressee in $action_addressees )$addressee.userId END #end

Я пытался использовать пробелы в конце, но кажется, что они сожраны и, следовательно, игнорируются (не то, что яожидается).

Какой правильный способ сделать это?И можно ли это сделать с помощью макроса?

Вывод шаблона должен быть открытым текстом (он не может быть структурирован как HTML);и форматирование должно быть выполнено в шаблоне, а не в нем, прежде чем оно будет помещено в модель шаблона.

1 Ответ

2 голосов
/ 12 июля 2011
#set( $n = '
')

#foreach($foo in $bar)$foo $n#end

or use the EscapeTool from the VelocityTools project

#foreach($foo in $bar)$foo $esc.n#end
...