2010-04-10 148 views
6

我正在寻找模板引擎。要求:模板引擎推荐

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

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

想法,想法?

+0

的可能重复[建议的基于Java的模板引擎?](http://stackoverflow.com/questions/174204/suggestions-for-a-java-based-templating-engine) – ripper234 2011-11-22 15:20:37

回答

2

Velocity怎么样?

  • 完整的Java
  • 不需要的servlet
  • 它具有文件,罐子,类路径& URL资源装载机(也许更多)
  • 模板可以包括其它模板(如果这是你的意思)
  • 具有很好的教程,到目前为止,我可以得到我从文档
2

如果我没有记错,需要什么是体面的 - 假设是某种“速度,下一代”。

0

也许退房 “JSTP”,http://jstp.sourceforge.net/manual.html

其语法是JSP的一个子集,因此IDE的支持非常出色。

在构建时将“jstp”模板转换为纯java类。没有运行时依赖。

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

Bar.jstp

<%!           
    public String name;      
%> 

Hello <%= name %> 

构建其转换成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,与calsspath,文件系统和URL实现。
  • 它可以在Servlets之外使用,例如String.format等特殊模板。
  • 它完全基于参数化包含模板。
  • 文档没问题,比基于脚本的引擎简单得多,所以你真的不需要那么多。
  • 和新版本great new freatures快到了,我想
0

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

0

对于Java而言,我的非废话模板引擎Chunk将是一个不错的选择。

  • 轻便。
  • 带文档和示例的大文档:http://www.x5software.com/chunk
  • 独立 - 无需servlet。
  • 来自filesystem,classpath,字符串,webserver, or write your own template provider的模板。
  • 基于带{$ tags}的简单模板。
  • 模板可以包含其他模板,甚至可以将它们作为带有json格式的标记值字典的宏来执行。
  • 循环,条件,过滤器,所有典型的好东西。
0

我是Pebble的作者,它很适合你的标准。

+0

我建议上阐述为什么这个库将为用户工作,在这个时候,这基本上是一个被认为是低质量的链接唯一的答案。 – Taryn 2014-07-24 23:38:00