代码之家  ›  专栏  ›  技术社区  ›  Nakedible

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

  •  29
  • Nakedible  · 技术社区  · 15 年前

    网络上似乎充斥着Velocity和FreeMarker之间的比较,它们似乎相当相似。但StringTemplate和FreeMarker之间似乎几乎没有可比性!

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

    如果同时使用过这两种语言的人有时间发表评论的话,那就太好了——对于实际的细节,我可以并排阅读文档,但是我想先从一些东西开始。

    2 回复  |  直到 13 年前
        1
  •  39
  •   Terence Parr    6 年前

    在厌倦了JSP的“模板中的代码”模型之后,我设计了ST来构建jGuru。Velocity和friends(即我认为的其他每一款发动机)为您提供了超出您需要的动力。我基本上使用了四个特性来构建jGuru.com网站(如中所述) paper

    另一件人们似乎忽视的事情是:一个图形设计师怎么能读懂模板中的代码?他们不能。那么,他们怎么能在模板上工作呢?即使更改某些元素的顺序也会破坏模型。要在商业环境中工作,您确实需要这种分离,除非您想要一个看起来像是由html构建的编码器的站点;)

        2
  •  8
  •   lujop    6 年前

    主要区别在于StringTemplate严格执行模型-视图分离,您不能在模板中放置逻辑,而FreeMarker允许您在模板中放置完整的逻辑。。这至少在一开始就使得它更难使用,但它更具可扩展性。例如,如果您正在生成代码,而模板中没有逻辑,那么为另一种语言生成另一个端口就不那么乏味了,因为您不必在每个模板中复制逻辑。

    a paper 来自Terence Parr,解释了模型-视图分离的好处