2010-04-10 193 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