Plaintext Velocity模板单线foreach

时间:2011-07-05 13:39:00

标签: java formatting velocity template-engine

我正在使用力度模板为通知系统生成纯文本电子邮件。我有一个“收件人”POJO列表,其中包含用户ID和电子邮件地址。我想迭代这些POJO并在一行中输出用户ID(最后用一些分隔符(如逗号)分隔)。我在格式化输出时遇到问题。例如:

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

不幸的是,这并不会在每个foreach循环后创建一个新行。所以我得到类似的东西:

  

对于Info:user1 user2 user3 For Action: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 个答案:

答案 0 :(得分:2)

#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