回答
Velocity和Freemarker都很有能力。不要为选择而痛苦。他们在设计背后有着相当不同的优先级,所以一旦超越了基本模板,他们的功能集很难进行比较。 Velocity的语法更简单,更明确,Freemarker的重语法允许它们支持JSP库。 Velocity通过附加项目(如VelocityTools)提供了更多的自由度和更多的功能。 Freemarker提供了更好的本地空白处理,最近的Velocity版本提供了更有趣的内容控制(#define,#evaluate,#[[literal block]]#)。
至于性能方面,Velocity近年来取得了很大的收益,除了最初的模板解析。但对于性能至关重要的任何理智的应用程序,您应该将这两个引擎设置为缓存模板并仅解析一次,从而减少了这个问题。一般来说,你会发现你使用任何一个引擎的表现都更依赖于模板的性质,而不是引擎之间的差异。
StringTemplate也很受欢迎,虽然它们是MVC纳粹,并且无法匹配Velocity或Freemarker的功能。;)您的潜在失望程度比任何一种更受欢迎的模板引擎都要高一些,而这两种模板引擎都不会令人失望。抓住一个,然后去。
**“不要为选择而痛苦”**写得很好! – Stephan 2018-01-09 11:38:58
我更喜欢FreeMarker。我喜欢这些文档,我总能找到我需要的东西。总的来说,我只是觉得它非常强大。
String Template是另一种选择。
同样,这个比较已经过时了,只比较了基本特性,忽略了Velocity的各种强大的附加项目。 Freemarker社区没有相信他们没有更新它。 – 2010-11-10 15:37:19
@Nathan Bubna - 我在某个时候并没有真正使用过速度,那个比较中究竟是什么过时了? – Andy 2010-11-10 15:55:38
大部分,我可以在这里指出。它基于Velocity 1.2,就像9年前一样。速度1.7正在测试中,并很快成为决赛。它似乎也意味着像VelocityTools这样的东西是“解决方法”,这不是一个公平的评估。 – 2010-11-11 18:02:52
freemarker项目页面上有一个lengthy comparison。
从来没有与速度工作,我不能有意义地比较这两个,但我对freemarker非常满意,我看到没有理由超越它。
那么长时间的比较对于Velocity 1.4来说可能是有效的,但是Velocity自那以后增加了很多。而且这种比较总是拒绝承认流行的VelocityTools项目的存在,该项目一直提供了丰富的功能。 – 2010-11-10 15:16:17
更正,该比较对速度1.2有效。 Velocity现在支持其中大部分(尽管有时以不同方式实现),其余大部分由VelocityTools支持。而一些“比较”则很奇怪。当我们轻松支持java函数时,Velocity不需要与Java无关的函数。 – 2010-11-11 18:10:30
“冗长的比较”的链接已经失效 – domih 2015-12-09 09:13:42
它看起来像this是比较体面的破损。虽然,这是几岁。
从文章:
总之
双方的FreeMarker和Velocity是非常 能够模板引擎。速度 似乎享有较大的用户群, 可能是由于它是 部分Apache项目。正如我在本文中显示的 ,虽然, FreeMarker是更复杂的 和更快的两个。在基本的 操作中,两个模板引擎都是 几乎相似,提供了一个易于理解的API。
Velocity和FreeMarker都是 很容易集成到 应用程序中,并在小模板上提供良好的性能 。在解析较大的模板时速度减慢 ,当您为 项目选择模板引擎时,您可能会考虑到 。
Freemarker无法在Android上运行。因此,我目前正在将我的项目转换为Velocity,以使其与移动设备兼容。
- 1. Velocity vs. FreeMarker
- 2. Freemarker/Velocity - 日期操作
- 3. Apache Velocity $ vs $!{}
- 4. Velocity vs Apache Tiles
- 5. Spring vs Struts + Freemarker
- 6. MS Velocity vs Memcached for Windows?
- 7. freemarker的功能VS宏
- 8. 为什么Spring有taglibs&velocity/freemarker宏?那不是反弹吗?
- 9. 使用Velocity或FreeMarker创建电子邮件模板
- 10. Velocity或FreeMarker支持更好的国际化?
- 11. FreeMarker中的HTML语法高亮/ Intellij上的Velocity
- 12. Freemarker转义freemarker
- 13. Liferay Freemarker变量列表
- 14. velocity(test instanceof)
- 15. Velocity $ fn docs
- 16. Memcached和Velocity
- 17. Apache Velocity + Servlet 3.0
- 18. Velocity中的“NoClassDefFoundError”
- 19. IntelliJ IDEA Velocity ResourceNotFoundException
- 20. Eclipse + Apache Velocity Engine?
- 21. Apache Velocity“主模板”?
- 22. 对于Velocity模板
- 23. Velocity Plugin for Hudson/Jenkins?
- 24. .velocity不是函数
- 25. Velocity模板格式
- 26. 用Velocity运行Tinytest
- 27. 乘法Velocity模板
- 28. Entity Framework 4和Velocity
- 29. Spring MVC + Hibernate Validator + Velocity
- 30. Body Adjustable Velocity AndEngine/Box2D
有人问,但这个人得到了更好的答案。 – Speck 2012-02-27 15:04:46