我正在尝试选择Freemarker和Velocity作为模板引擎,你觉得它们有什么优缺点吗?
有什么替代方案是我应该考虑的吗?
发布于 2010-11-10 23:35:58
Velocity和Freemarker都很有能力。不要为选择而苦恼。它们在设计背后有相当不同的优先级,所以一旦你超越了基本的模板,它们的功能集就很难比较了。Velocity的语法更简单、更独特,Freemarker的语法更丰富,允许它们支持JSP库。Velocity通过VelocityTools等附加项目提供了更多自由,并最终提供了更多功能。Freemarker提供了更好的原生空白处理,最近的Velocity版本提供了更有趣的内容控件(#define,#evaluate,#[字面块]#)。
至于性能,Velocity在最近几年取得了很大的进步,可能除了在初始模板解析方面。但对于任何正常的应用程序来说,性能很重要,你应该将两个引擎都设置为缓存模板,并且只解析一次,这样就不会有太大的问题。通常,您会发现使用这两个引擎的性能更多地取决于模板的性质,而不是引擎之间的差异。
StringTemplate也是受人尊敬的,尽管他们是MVC纳粹,在功能上无法与Velocity或Freemarker相提并论。;)你的潜在失望可能比两个更流行的模板引擎都要高一点,这两个引擎都不太可能让你失望。抓起一个就走吧。
发布于 2010-11-10 04:11:21
我更喜欢FreeMarker。我喜欢这些文档,我总能找到我需要的东西。总的来说,我只是觉得它非常强大。
String Template是另一种选择。
发布于 2010-11-10 04:15:51
看起来this是这种比较的一个不错的缩影。不过,它已经有几年的历史了。
摘自文章:
结束语
FreeMarker和Velocity都是非常强大的模板引擎。Velocity似乎拥有更大的用户基础,这可能是因为它是Apache项目的一部分。但是,正如我在本文中所展示的,FreeMarker是两者中更复杂、速度更快的一种。在基本操作中,这两个模板引擎几乎是相似的,都提供了一个易于理解的API。
Velocity和FreeMarker都很容易集成到应用程序中,并在小模板上提供良好的性能。当解析较大的模板时,速度会变慢,这在为项目选择模板引擎时可能会考虑到这一点。
https://stackoverflow.com/questions/4137981
复制相似问题