Google App Engine 的模板引擎

17

你能推荐一个适用于GAE的模板引擎吗?我喜欢Wicket,但它带有许多服务器端状态,这与GAE的方法不太兼容。

FreeMarker在GAE上受支持吗?

编辑

我对模板引擎的主要要求是:

  • 易于开发(逻辑和设计分离)
  • 直观的语法,因为用户可能会自定义一些模板
  • 快速,轻量级

1
http://freemarker.blogspot.com/2010/02/freemarker-on-google-app-engine.html 似乎表明FreeMarker目前不支持Java App Engine。 - Jason Hall
2
请访问http://code.google.com/p/googleappengine/wiki/WillItPlayInJava,查看可在Java应用引擎中运行的框架列表。 - Jason Hall
2
你的具体要求是什么?JSP在GAE/J中可以直接使用。 - Robert Munteanu
FreeMarker现在可用于GAE了。 http://freemarker.blogspot.com/2010/02/freemarker-on-google-app-engine.htmlhttp://repo1.maven.org/maven2/org/freemarker/freemarker-gae/ - Somatik
“关闭问题,原因是不具建设性”?开玩笑吧!+1 - Katedral Pillon
3个回答

7

看起来非常令人印象深刻!谢谢! - Tony the Pony

2

我在GAE上很成功地使用FreeMarker。 我让它处理所有的html文件,并且欢迎文件目录处理也很好。 如需更多信息,请参见此其他stackoverflow问题。 我的web.xml文件和其他详细信息都在那里。


我一直在使用freemarker和eclipse遇到一个问题,当我运行mvn appengine:deploy时,似乎无法将.ftl文件部署到gae。请问你是如何解决这个问题的? - I.Tyger
抱歉我已经有一段时间没有使用GAE了。我想我让freemarker处理程序默认呈现所有HTML文件。@I.Tyger - Gray

1

Rythm是一种强类型的Java模板引擎,使用类似Razor语法,具有高性能(比Velocity和FM快2到3倍)。它提供了一种非常轻量级的字符串插值方式:

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

这种简单性使得Rythm在许多情况下成为String.format()的良好替代品。请注意,Rythm.renderString.format快2倍。

对于全面的模板,您可以使用相同的接口传递文件名:

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

Rythm拥有非常丰富的功能集,包括Java流程控制(if-else,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下载Rythm。

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