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

时间:2011-07-26 14:34:47

标签: java node.js template-engine client-side-templating

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

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

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

我已经阅读了很多类似的问题,最新且最有帮助的是:Templating language for both client-side and server-side rendering

我非常赞同作者明显的竞争者: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,你会建议使用什么样的通信/库?

1 个答案:

答案 0 :(得分:1)

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

编辑 - 2012年4月

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

  • 我将服务器端模板外包给Node.js.
  • 使用套接字实现的java和node.js之间的通信。 (参见:Sending data from node.js to Java using sockets了解我的想法)
  • 从现在开始我只需要一个client-lib(或者更好的一个在客户端和服务器端使用javascript运行的节点)我可以更自由地选择。已经习惯了Mustache,我选择了Hogan解析器(由Twitter人员)(http://twitter.github.com/hogan.js/

100%DRY(即使客户端mixins和i18N-bundle来自同一来源。 此外,Hogan可以预编译服务器端的模板并打开与客户端的连接,这样客户端就不必再在第一次连接时解析模板了。

快吗?闪电...