【问题标题】:Advantages Rythm Template Engine over Japid for Play Framework 1.x?节奏模板引擎优于 Japid for Play Framework 1.x 的优势?
【发布时间】:2012-06-10 08:24:24
【问题描述】:

Rythm 是 Play 的模板引擎!框架视图。

它是类型安全的,并提供了默认 groovy 模板的替代方案。

Japid 也是一个类似的 Play 模板引擎! Rythm 和 Japid 都在解决类似的问题。

节奏

http://www.playframework.org/modules/rythm

http://www.rythmengine.com/

杰皮德

http://www.playframework.org/modules/japid

Rythm 比 Japid 有什么优势?

【问题讨论】:

    标签: java playframework template-engine rythm japid


    【解决方案1】:

    Rythm 语法接近 Play2 模板语法,因此迁移路径会更容易。

    Ryhtm 所基于的 Razor 语法是为 C# 模板定义的,并且清晰一致。

    另一方面,Japid 比 Rythm 更老,因此可以有更多的功能和更少的错误

    【讨论】:

      【解决方案2】:

      Japid 相对于 Rythm 的最大优势是前者有一个 Eclipse 插件,而后者目前没有工具支持。

      Rythm 在提供更好的 Play-1.x 集成方面胜出。见Integration Guide和Migration Guide

      这里值得一提的是 Rythm by default escape expression output 类似于 Groovy 引擎,而 Japid 要求您将其显式转义为 ${escape(expr)}。也就是说,Rythm 使用起来更安全,而 Japid 对性能的投票更多。

      根据我的理解,两者的功能集应该没有其他大的差异。 - Green,Rythm 的作者

      更新

      Rythm 刚刚发布了一个名为 String Interpolation Mode (SIM) 的功能,它允许您在简单情况下省略参数声明,使其成为大多数情况下 String.format 的良好替代品:

      String result = Rythm.render("Hello @who!", "world");
      

      注意 SIM 以两种方式击败 String.format:

      1. 性能。 Rythm.render 比 String.formant 快 2 到 3 倍
      2. 清除。 “Hello @who”比“Hello %s”更清晰。
      3. String.format() 只能按位置传递参数,而Rythm.render 既支持按位置传递,也支持按名称传递

      【讨论】:

        【解决方案3】:

        我已经实现了static-mustache library 以提供基于 mustache 语法的类型安全模板引擎。

        它在编译时检查语法错误和类型错误(如缺少属性),如 Rythm 或 Japid。

        它需要几乎零构建配置(与需要自定义插件的 Rytm 和 Japod 相比),因为它是标准注释处理器。

        在 static-mustache 中,所有类型信息都是从用于渲染的普通 Java 类中提取的。模板语言仍然是纯粹的“无逻辑”胡子。 因此模板可以在服务器端和客户端渲染器之间共享。

        【讨论】:

        • 有趣!感谢分享。
        猜你喜欢
        • 2023-04-02
        • 2011-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-21
        • 1970-01-01
        相关资源
        最近更新 更多