对于Play Framework 1.x,日本的Rythm模板引擎优势?

时间:2012-06-06 10:13:04

标签: java playframework template-engine rythm japid

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

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

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

RYTHM

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

http://www.rythmengine.com/

Japid

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

Rythm比Japid有什么优势?

3 个答案:

答案 0 :(得分:3)

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

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

另一方面,Japid比Rythm年长,所以可以有更多的功能和更少的错误

答案 1 :(得分:2)

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

Rythm赢得了更好的Play-1.x集成。请参阅Integration GuideMigration Guide

这里值得一提的另一件事是Rythm by default escape expression output喜欢Groovy引擎,而Japid要求你明确地将其转义为${escape(expr)}。这表示Rythm使用起来更安全,而Japid对性能的投票更多。

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

<强>更新

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

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

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

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

答案 2 :(得分:0)

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

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

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

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