客户端模板语言与Java编译器以及(DRY模板)

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

我想象的API就是这样:render(JSON,template) – > html。

我正在使用一个Java框架(实际上玩框架,但我不认为这是特定于框架)。

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

我非常同意作者这样的明显的竞争者:Mustache和Google Closure Templates不会削减它。 (因为看到这个post)

要求:

  • 必须:客户端渲染
  • 必须:模板文件的客户端caching
  • NICE:模板文件的客户端“编译一次执行多次”快速的javascript代码
  • 必须:服务器端渲染
  • NICE:原生的Java实现

我见过一堆post,提示使用Node.js进行服务器端模板化。 尽pipe这肯定会起作用(下划线模板,Handlebarsjs,EJS都可以正常工作)我很努力地看到如何沟通/组合/整合Node.js与Java,毕竟它仍然是需要输出JSON的Java框架

我已经看过文章提到JVM和node.js(通过http或使用JNDI)之间的一些概念validation。 然而,目前似乎还没有图书馆,更不用说经过战斗考验了。

所以,为了整理一下,你会build议在java中运行什么客户端模板引擎(或者可以从jvm中调用)? 如果这个'箍'碰巧是Node.js,你会build议使用什么样的通信/库?

我现在要去看胡子了,期待Handlebars.js的java实现。 一旦存在,重构path就不应该那么陡峭。

编辑 – 2012年4月

好的,更新这个供将来参考:

  • 我将服务器端模板外包给Node.js.
  • 通过套接字实现的java和node.js之间的通信。 (请参阅: 使用套接字将数据从node.js发送到Java,以获得想法)
  • 由于现在我只需要一个客户端库(或更好的一个在客户端和服务器端使用节点在javascript中运行),我可以更自由地select。 习惯胡子之后,我select了Hoganparsing器(通过Twitter家伙)( http://twitter.github.com/hogan.js/

100%DRY(甚至客户端的mixin和i18N-bundles都来自同一个源代码),而且Hogan可以预编译服务器端的模板,并打开一个连接到客户端,这样客户端就不必再parsing模板了先连接。

它快吗? 闪电…