java - 带有 java 编译器的客户端模板语言(DRY 模板)

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

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

我设想的 API 很简单:render(JSON, template) --> html。

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

我读过很多类似的问题,最新的和最有帮助的问题是:Templating language for both client-side and server-side rendering .

我非常同意作者的观点,明显的竞争者如:Mustache 和 Google Closure Templates 不会削减它。 (原因见那个帖子)

要求:

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

我看到很多帖子建议将 Node.js 用于服务器端模板。虽然这肯定会起作用(下划线模板、Handlebarsjs、EJS 都可以正常工作)我正在努力了解如何将 Node.js 与 java 通信/组合/集成,毕竟它仍然是需要输出 JSON 的 java 框架

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

所以总结一下,你会建议哪个客户端模板引擎也可以在 java 中运行(或者有一些箍,可以从 jvm 调用)?如果那个“圈”恰好是 Node.js,你会建议使用什么通信方式/库?

最佳答案

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

编辑 - 2012 年 4 月

好的,更新这个以供将来引用:

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

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

速度快吗?闪电……

关于java - 带有 java 编译器的客户端模板语言(DRY 模板),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6831718/

相关文章:

java - BufferyStrategy 返回错误

java - 重写父类(super class)继承的方法

java - 在 OpenCV JavaCameraView 上更改帧大小

java - GlassFish - 如何从 OSGI 包获取数据源

node.js - glob匹配,排除所有JS文件

templates - 避免 groovy 模板中的新断线

javascript - NodeJS - 是否可以有两个独立的集群?

node.js - 具有基本身份验证的客户端 SSL POST 给出 DEPTH_ZERO_SELF_SIGNED_CERT 错误

javascript - Coffeescript、Haml 等模板引擎

python - 使用 Jython 运行的 Python 中的模板库(引擎)