我正在尝试在Freemarker和Velocity之间作为模板引擎来决定你看到的每个优势/劣势吗?
我应该考虑的任何替代方案?
答案 0 :(得分:35)
Velocity和Freemarker都非常强大。不要为选择而烦恼。他们的设计背后有不同的优先级,所以一旦你超越了基本的模板,他们的功能集很难比较。 Velocity的语法更简单,更清晰,Freemarker更重的语法允许它们支持JSP库。 Velocity通过VelocityTools等附加项目提供更多自由并最终实现更多功能。 Freemarker提供了更好的原生空白处理,最近的Velocity版本提供了更有趣的内容控件(#define,#rating,#[[literal block]]#)。
至于性能方面,Velocity近年来取得了很大的进步,除了最初的模板解析。但是对于性能很重要的任何理智的应用程序,你应该将两个引擎设置为缓存模板并且只解析一次,这使得这不是一个问题。通常,您会发现使用任一引擎的性能更多地取决于模板的性质而不是引擎之间的差异。
StringTemplate也是值得尊敬的,虽然它们是MVC纳粹,并且无法与Velocity或Freemarker匹配功能。 ;)你的潜在失望比任何一个更受欢迎的模板引擎都要高,其中任何一个都不会令人失望。抓住一个就走吧。
答案 1 :(得分:8)
我更喜欢FreeMarker。我喜欢文档,我总能找到我需要的东西。总的来说,我认为它非常强大。
String Template是另一种选择。
答案 2 :(得分:5)
看起来this是比较的一个不错的纲要。虽然,它已经有几年了。
来自文章:
总结
FreeMarker和Velocity都很棒 功能模板引擎。速度 似乎享有更大的用户群, 可能是因为它是 Apache项目的一部分。就像我一样 但是,这篇文章中显示了 FreeMarker更复杂 而且速度更快。基本的 操作两个模板引擎 几乎相似,提供了一个API 很容易理解。
Velocity和FreeMarker都是 相当容易融入 应用并提供良好的性能 在小模板上。速度减慢 解析较大的模板时, 你可能会考虑到什么时候 为您选择模板引擎 项目
答案 3 :(得分:2)
freemarker项目页面上有一个lengthy comparison。
从未使用过速度,我无法比较两者,但我对freemarker非常满意,我认为没有理由超越它。
答案 4 :(得分:0)
Freemarker无法在Android上运行。因此,我目前正将我的项目转换为Velocity,使其与移动设备兼容。