2011-07-05 48 views
1

我正在使用velocity模板爲通知系統生成純文本電子郵件。我有一個包含用戶ID和電子郵件地址的「收件人」POJO列表。我想迭代這些POJO,並在一行輸出用戶ID(最後用逗號分隔)。我在格式化輸出時遇到問題。例如:純文本速度模板單行foreach

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

不幸的是,這不會在每個foreach循環後創建一個新行。所以我得到這樣的:

對於信息:用戶1用戶2用戶3行動:USER4用戶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結構);並且格式必須在模板中完成,而不是在放入模板模型之前完成。

回答

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 
+0

呃..把$ n或之後#結束 –

+0

乾杯$ esc.n。我實際上是自己找到了一個類似的解決方案,但從未發佈過它。 – S73417H