模板引擎推荐

6
我正在寻找一个模板引擎。要求如下:
  • 在JVM上运行。Java很好;Jython、JRuby等也可以……
  • 可以在servlet之外使用(不像JSP)
  • 对于模板存储的位置非常灵活(JSP和许多人要求模板存储在FS中)。它应该提供一个模板加载接口,可以实现或类似的东西
  • 易于包含参数化模板-我真的很喜欢JSP的标签片段
  • 良好的文档、漂亮的代码等等,通常的嫌疑犯
我已经看过了JSP-除了servlet和文件系统耦合之外,它几乎是完美的。Stringtemplate-我喜欢模板语法,但它在文件系统耦合方面失败了,文档缺失,模板组和其他东西令人困惑,GXP、TAL等。
有什么想法、想法吗?

可能是Java模板引擎的建议?的重复问题。 - ripper234
7个回答

2

Velocity 怎么样?

  • 完全使用 Java
  • 不需要 servlets
  • 它有文件、jar、classpath 和 URL 资源加载器(可能还有更多)
  • 模板可以包含其他模板(如果这是您的意思)
  • 有很好的教程,到目前为止我从文档中得到了我需要的东西

2
如果我没记错的话,FreeMaker 是不错的——被认为是某种“下一代Velocity”。

0

也许可以看看 "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(..);       

使用典型的“热插拔”,在编辑模板时不应该重新启动服务器。


0

关于Snippetory呢?

  • 它是完全基于Java的(甚至你的逻辑也是用Java编写的!)
  • 模板由UriResolver加载,具有classpath、文件系统和URL的实现。
  • 它可以在Servlet之外使用,例如作为临时模板,就像String.format一样。
  • 它完全基于参数化的模板包含。
  • 文档还不错,比基于脚本的引擎简单得多,所以你真的不需要那么多。
  • 而且一个带有伟大新功能的新版本即将推出,我想。

0

如果您正在寻找一款不妥协、简洁易用的Java模板引擎,那么“Chunk”是一个不错的选择。

  • 轻量级。
  • 拥有优秀的文档,提供示例和用法:http://www.x5software.com/chunk
  • 独立性强 - 无需依赖Servlet。
  • 可自文件系统、类路径、字符串、Web服务器或编写自己的模板提供者等多种方式加载模板。
  • 使用简单的{$tags}作为标记。
  • 支持在模板中包含其他模板,甚至可以将它们作为宏执行,同时还能传递一个JSON格式的字典作为标记值。
  • 支持循环、条件语句、过滤器等常见功能。

0

试试Mixer2。http://mixer2.org/ Mixer2不依赖于servlet-API。 您可以将模板存储在String、java.io.File和java.io.InputStream中。


0

我是Pebble的作者,它非常符合你的要求。


建议详细说明为什么这个库适合用户,目前这基本上是一个只有链接的答案,被认为是质量低的。 - Taryn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接