2009-01-29 79 views
0

我想添加一個元素到我的速度宏列表中。這是否只能避免出現在Velocity輸出中的「真實」文字?速度和忽略Java方法返回

#set($path = []) 
#set($swallow = "a") 

#set ($swallow = $path.add("blaablaa")) 

回答

3

我有特倫斯·帕爾(的StringTemplate父親)誰在an Artima interviewa good paper on model-view separation相關意見達成一致。

模板應限於純粹的演示文稿。就像我們不應該在模型中放置表示層細節一樣,我們不應該將數據操作放在模板中。這樣做通常最終會使維護變得更加困難,甚至使得難以知道在哪裏要做維護。

基於我對Velocity和StringTemplate的經驗,我強烈建議在你的問題(數據操作的製造物使得模板更復雜)中作爲提示並將所有對數據結構的操作移動到Java中層。

6

是的,如果你想關閉它,那麼#set是你的朋友。很多人這個快捷方式,像這樣一個宏:

#macro(call $this)#set($stfu = $this)#end 

然後你可以縮寫爲

#call($path.add('blaablaa'))