模板引擎建议

我正在寻找一个模板引擎。 要求:

  • 在JVM上运行。 Java很好; Jython,JRuby等也是……
  • 可以在servlet之外使用(与JSP不同)
  • 是灵活的wrt。 存储模板的位置(JSP和许多人要求模板存储在FS中)。 它应该提供一个可以实现的模板加载接口或类似的东西
  • 容易包含参数化模板 – 我非常喜欢JSP的标签片段
  • 好的文档,漂亮的代码等,通常的嫌疑人

我看过JSP-它几乎完美,除了servlet和文件系统耦合,Stringtemplate-我喜欢模板语法,但它在文件系统耦合上失败,文档缺乏,模板组和东西混乱,GXP,TAL,等等

想法,想法?

Velocity怎么样?

  • 完整的Java
  • 不需要servlet
  • 它有文件,jar,类路径和URL资源加载器(也许更多)
  • 模板可以包含其他模板(如果这是你的意思)
  • 有很好的教程,到目前为止我可以从文档中得到我需要的东西

如果我的记忆服务, FreeMaker是体面的 – 假设是某种“速度,下一代”。

也许请查看“JSTP”, http: //jstp.sourceforge.net/manual.html

它的语法是JSP的子集,因此IDE支持非常好。

“jstp”模板在构建时被翻译成普通的java类。 没有运行时依赖。

模板的“参数”应该由成员字段传递。 静态打字一路。

Bar.jstp

<%! public String name; %> Hello <%= name %> 

build将其转换为Bar.java

 public class Bar { public String name; public void render(java.io.PrintWriter out) { out.print("Hello "); out.print(String.valueOf(name)); ... } } 

然后你通过调用模板

 Bar bar = new Bar(); bar.name = "John"; bar.render(..); 

在典型的“hotswap”中,您不必在编辑模板时重新启动服务。

Snippetory怎么样?

  • 它是完整的java,(甚至你的逻辑用java编写!)
  • 模板由UriResolver加载,具有calsspath,文件系统和URL的实现。
  • 它可以在Servlet外部使用,例如作为特殊模板,如String.format
  • 它完全基于参数化的模板包含。
  • 文档是可以的,它比基于脚本的引擎简单得多,所以你真的不需要那么多。
  • 我想,即将推出一款带有很多新function的新版本

试试Mixer2。 http://mixer2.org/ Mixer2对servlet-API没有依赖性。 您可以将模板存储在String,java.io.File和java.io.InputStream上。

Chunk,我的Java非严肃的模板引擎,将是一个不错的选择。

  • 轻巧。
  • 很棒的文档,包含示例和配方: http : //www.x5software.com/chunk
  • 独立 – 无需servlet。
  • 来自文件系统,类路径,字符串, Web服务器的模板,或编写您自己的模板提供程序 。
  • 基于{$ tags}的简单模板。
  • 模板可以包含其他模板,甚至可以使用json格式的标记值字典将它们作为宏执行。
  • 循环,条件,filter,所有典型的好东西。

我是Pebble的作者,非常符合您的标准。