我希望能够定义一次模板并使用它们从服务器端和客户端呈现 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/