使用java编译器的客户端模板语言(DRY模板)

Gee*_*Jan 10 java template-engine node.js client-side-templating

我希望能够定义模板一次,并使用它们从服务器端和客户端呈现html.(DRY原则和所有)

我想象的API就是这样的:渲染(JSON,模板) - > html.

我正在使用java框架(实际上是Play框架,但我不认为这是特定于框架的).

我已经阅读了很多类似的问题,最新的,最有帮助的:客户端和服务器端渲染的模板语言.

我非常赞同作者明显的竞争者:Mustache和Google Closure模板不会削减它.(原因见帖子)

要求:

  • 必须:客户端渲染
  • 必须:模板文件的客户端缓存
  • NICE:客户端"编译 - 执行多次"模板文件到快速javascript代码
  • 必须:服务器端渲染
  • NICE:本机java实现

我看过很多帖子建议使用Node.js进行服务器端模板化.虽然这肯定有用(下划线模板,Handlebarsjs,EJS都可以正常工作)但我很想知道如何将Node.js与java进行通信/组合/集成,毕竟它仍然是需要输出JSON的java框架

我看过帖子提到JVM和node.js之间的一些概念验证通信(通过http或使用JNDI).然而,目前似乎没有图书馆,更不用说经过考验了.

那么为了解决这个问题,你会建议哪些客户端模板引擎也会在java中运行(或者有一些箍,可以从jvm中调用)?如果'hoop'碰巧是Node.js,你会建议使用什么样的通信/库?

Gee*_*Jan 1

我现在选择 Mustache,并期待 Handlebars.js 的 java 实现。一旦存在,重构路径就不应该那么陡峭。

编辑 - 2012 年 4 月

好的,更新一下以供将来参考:

  • 我将服务器端模板外包给 Node.js。
  • java和node.js之间的通信使用套接字实现。(请参阅:使用套接字将数据从node.js发送到Java,了解我的想法)
  • 因为现在我只需要一个客户端库(或者更好的一个使用节点在客户端和服务器端都以 JavaScript 运行的库),我可以更自由地选择。习惯了 Mustache 之后,我选择了 Hogan 解析器(由 Twitter 人员提供)( http://twitter.github.com/hogan.js/ )

100% DRY(甚至客户端 mixins 和 i18N-bundles 都来自同一源。此外,Hogan 可以在服务器端预编译模板并打开到客户端的连接,这样客户端就不必再解析模板了首先连接。

快吗?闪电...