【发布时间】:2012-05-18 10:56:43
【问题描述】:
是的,我知道thishasbeenaskedbefore。但大多数问题都是两年前的问题,今天一定会有更好的答案。
我需要一种模板语言来呈现 HTML。要求:
必须可从 Java 调用。
不得为 Freemarker、Velocity 或 StringTemplate。我们已经使用 Freemarker 一年了,它太慢了。它在负载下消耗了我们 50% 的 CPU 周期。 Velocity 比 Freemarker 差,StringTemplate 也有自己的问题。
它必须使用 JSON 或其 Java 等价物,即地图、列表和原语。
我开始嫉妒 Node.js。去年有大量的 Javascript 模板活动,但 Java 很少(据我所知)。
理想的语言应该是 Liquid,它只存在于 Rails 中。
Jade 存在于 Java 中,但我不希望随之而来的所有 HTML 重新格式化。
更新
我最终选择了Handlebars,这也是available for Java。两者都很好用。
【问题讨论】:
-
已经在问题陈述中争论不休。这怎么可能是建设性的?
-
已修复。不打算争论。
-
您能否详细说明一下为什么您认为 Velocity 比 Freemarker 差?我从来没有遇到过这样的系统消耗。
-
您可以使用 SpEL(Spring 表达式语言)。与 Velocity 或 Freemarker 相比,它快速、稳定并且拥有更多现代运算符。
-
我必须同意 ddekany(和 Claude)的观点。我已经使用 Freemarker 和 Velocity 多年,但从未听说过 50% 的 CPU。你做错事的几率非常高。检查你的循环,也许。
标签: java templates velocity freemarker stringtemplate