模板引擎建议
我正在寻找一个模板引擎。 要求:
- 在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的作者,非常符合您的标准。