2010-11-09 170 views
17

您能爲GAE推薦模板引擎嗎? 我喜歡Wicket,但它帶有很多服務器端狀態,這與GAE方法不太兼容。Google App Engine的模板引擎

是否支持GAE上的FreeMarker

EDIT

我給模板引擎主要要求是:

  • 易於發展
  • 直觀的語法,(邏輯和設計的分離),因爲用戶可以定製一些模板
  • 快速,輕便
+1

的AppEngine/Java的專門下載的節奏? – 2010-11-09 18:49:27

+1

http://freemarker.blogspot.com/2010/02/freemarker-on-google-app-engine.html似乎表明FreeMarker尚未(當前)在Java App Engine中受支持 – 2010-11-09 19:25:13

+2

請參閱http://code.google .com/p/googleappengine/wiki/WillItPlayInJava獲取將在Java App Engine中運行的框架列表。 – 2010-11-09 19:26:32

回答

2

我在GAE上非常成功地使用FreeMarker。我有它處理所有的HTML文件與歡迎文件目錄處理工作正常。有關更多信息,請參閱this other stackoverflow question。我有我的web.xml文件和其他細節。

+0

我一直對我的freemarker和eclipse有問題,當我運行mvn appengine時,似乎沒有將.ftl文件部署到gae:部署,請問您是如何通過這個的? – 2015-06-21 07:04:57

+0

對不起,我一段時間沒有使用GAE。我想我使默認標記處理程序默認渲染所有HTML文件@ I.Tyger。 – Gray 2015-06-22 18:27:09

1

Rythm是使用Razor的強類型Java模板引擎,具有高性能(比Velocity和FM快2到3倍)的語法。它提供了一個非常輕量級的方式做字符串插值:

String result = Rythm.render("hello @who!", "world"); 

這種簡單性使得節奏在許多情況下,一個很好的替代String.format()。請注意,Rythm.renderString.format

更快倍,爲全面模板,你可以使用相同的接口在文件名中傳遞:

Map<String, Object> args = new HashMap<String, Object>(); 
args.put("who", "world"); 
... 
String result = Rythm.render("myTemplate.html", args); 

節奏具有非常豐富的功能集,包括Java的流控制(如 - 其他,for循環,集合迭代),模板繼承,外部和內部標籤的創建和調用,緩存,Java方法擴展,空間緊湊,html轉義等。大多數功能在http://play-rythm-demo.appspot.com/中演示。 (是的,演示是使用Play!Framework加上Rythm模板引擎編寫的,並且它正在GAE上運行!)

在Rythm引擎上創建了Play!Framework插件,您可以從中找到有關如何使用Rythm的文檔:http://www.playframework.org/modules/rythm

您可以從https://github.com/greenlaw110/rythm/downloads