项目的目标是不同的。Velocity旨在尽可能保持模板简单,有助于维护逻辑和表现之间的分离,以避免将代码粘贴到模板中。有时这是正确的选择。当然,有时直接将复杂逻辑连接到模板中可能更为合适。Velocity并不经常进行更新,但这并不意味着它没有在积极开发。用户社区庞大,代码快速稳定,语法基本固定。在过去几年中,Freemarker在模板语法和API方面经历了许多变化。有时候最好还是让事情自然而然地发展。再次强调,这取决于你所寻找的东西。Freemarker的文档要复杂得多 - 它是一款更为复杂的软件。许多使用Freemarker的用例可以归结为希望拥有复杂的模板工作流程,同时又不想要编译步骤。近年来,我已经开始使用Python或Ruby替代Java,在这个问题上遇到的困难就少多了。
如果可以的话,使用Freemarker: 像@skaffman所说,它仍在积极开发中 文档好,我认为比Velocity更好 在许多Web框架中提供作为备用模板语言 比Velocity有更少的依赖 比没有扩展的原始Velocity更完整。 还可以看一下@leonm提供的链接。
有两本关于Velocity的已出版书籍: Pro Jakarta Velocity: 从专业到专家 掌握Apache Velocity 还有其他一些关于它的章节的书籍。所以,这就是FreeMarker文档更多或更好的内容了 :).