Velocity并忽略java方法返回

时间:2009-01-29 13:19:05

标签: java return-value velocity

我想在Velocity宏的列表中添加一个元素。这是避免出现在Velocity输出中的“真实”文本的唯一方法吗?

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

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

2 个答案:

答案 0 :(得分:6)

是的,如果你想关闭它,那么#set就是你的朋友。很多人用这样的宏来快捷:

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

然后你可以缩写为

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

答案 1 :(得分:3)

我必须同意在StringTemplatean Artima interview中有相关评论的Terence Parr(a good paper on model-view separation的父亲)。

模板应限于纯粹的演示文稿。正如我们不应该在模型中放置表示层细节一样,我们不应该将数据操作放在模板中。做任何一种情况通常最终会使维护变得更加困难,甚至更难以了解 来进行维护。

根据我自己对Velocity和StringTemplate的经验,我强烈建议将问题中的问题(数据操作的工件使模板更复杂)作为提示并将数据结构的所有操作移到Java层中