StringTemplate和FreeMarker之间的主要区别是什么?

Nak*_*ble 29 java velocity freemarker stringtemplate

网似乎充满了Velocity和FreeMarker之间的比较,它们似乎相当合理.但似乎几乎没有StringTemplate和FreeMarker之间的比较!

那么,StringTemplate和FreeMarker之间的主要区别是什么?

我对它们的用法是仅生成HTML页面.在这两个中,我会期望FreeMarker更合适,更有能力,因为这似乎更常见 - 但通过快速浏览一下,看起来StringTemplate实际上有更合适的功能!

如果使用过两者的人都有时间发表评论会很棒 - 对于实际细节,我可以并排阅读文档,但我想要开始使用.

Ter*_*arr 36

我设计了ST来构建jGuru之后厌倦了JSP的"模板代码"模型.Velocity和朋友(即我认为的其他所有引擎)为您提供超出您需要的力量.我基本上使用了四个功能来构建jGuru.com(如在所描述的纸张).更多功能是不必要的,并导致您将模型纠缠到模板中.如果您正在构建一次性原型,那没关系,任何引擎都可以.在这种情况下,模板中的代码是可以的,因为您不关心维护.

人们似乎忽略了另一件事:图形设计师如何在模板中读取代码?他们不能.那么,他们如何处理模板呢?即使改变某些元素的顺序也会破坏你的模型.你真的需要分离才能在商业环境中工作,除非你想要一个看起来像编码器的网站构建html;)

  • 你对ST的评论不够了解!;-)但是严肃地说,除了模型视图分离之外,我对*其他*功能更感兴趣.类似于模板继承的东西,它存在于ST但不存在于FM中,至少不是以相同的方式存在.在比较FreeMarker,Velocity甚至XSLT时,似乎没有人会考虑使用StringTemplate. (4认同)
  • 继承是让ST诱人的东西!否则,我不喜欢过于严格的mvc,因为我们没有神秘的图形设计师无法抗拒MVC的变化,也无法理解非常简单的VTL. (3认同)

luj*_*jop 8

主要区别在于StringTemplate严格执行模型 - 视图分离,你不能在模板中放置逻辑,FreeMarker让你在模板中放入完整的逻辑.这至少在开始时使它更难以使用,但它更多可扩展性.例如,如果您生成代码并且模板中没有逻辑,则为另一种语言生成另一个端口不那么繁琐,因为您不必在每个模板中复制逻辑.

一纸来自特伦斯·帕尔解释从模型-视图分离的好处