Velocity 还是 FreeMarker?
它们看起来几乎一样,甚至语法也一样?
用什么?或者什么时候用什么?
项目的目标不同。
Velocity 的目标是使模板尽可能简单,以帮助保持逻辑和表示之间的隔离,这样您就不会陷入在模板中粘贴代码的滑坡。有时这是正确的事情。当然,有时能够将复杂的逻辑直接连接到模板中是正确的做法。
Velocity 并不经常更新,但这并不意味着它没有得到积极的开发。用户群体庞大,代码快速稳定,语法基本固定。在过去的几年里,Freemarker 在模板语法和 API 方面经历了一些变化。有时候,一个人呆着也很好。同样,取决于您要寻找什么。
Freemarker 的文档要广泛得多,而且它是一个复杂得多的软件。
Freemarker 的许多用例都归结为需要复杂的模板工作流程而不需要编译步骤。近年来,我不再使用 Java 来解决这个问题,而是使用 Python 或 Ruby。
当提出这个问题时,Velocity 不再真正处于积极开发状态,而 Freemarker 正在积极开发。
根据我的经验,Freemarker 也更加灵活。
如果可以的话,使用 Freemarker :
他们不时地尝试让自己与众不同(示例)。
我与两者都有过广泛的合作,从我的角度来看,它们非常相似。 您可以将很多功能构建到模板语言中,其余的只是一些废话。
有两本关于 Velocity 的出版书籍:
以及其他也有相关章节的书籍。 关于 FreeMarker 拥有更多或更好的文档就这么多了:)。