最快的Java Web模板语言

时间:2011-01-05 01:12:39

标签: java spring grails java-ee

我即将开始一个新的Spring MVC项目,我正在研究视图的各种选项。我从来都不是JSP的粉丝,过去我遇到过与JSP相关的性能问题,所以我正在研究其他选项。我希望在某个地方有人对各种选项进行普查(也许它必须是我),并宣布哪些是快速的,或者至少有哪些选项。以下是我想到的选择,从明显到奇怪的排序:

  • JSP,JSTL
  • 速度
  • FreeMarker的
  • GSP(Groovy JSP)
  • ERB由IronRuby提供动力或某种疯狂

列表中的任何建议,个人偏好或其他好的选项?

6 个答案:

答案 0 :(得分:7)

StringTemplate - 快速,简单并有助于强制执行MVC对问题的分离。最后我查了一下,Spring Web MVC没有为它提供View类,但我能够轻松地create a custom one

答案 1 :(得分:5)

虽然我可能会自己选择FreeMarker或Velocity,但我对你所说的内容感到惊讶

  

与JSP相关的性能问题

在所有这些可能的解决方案中,JSP显然是性能最佳的。毕竟,JSP页面被编译为Servlet类并从字节代码执行,而您提到的所有其他技术都被解释。

如果遇到性能问题,请优化JSP代码或使用JSP编译器(如JSPC)预编译JSP页面(可能使用maven,使用JSPC-maven-plugin)。

答案 2 :(得分:3)

这些天我更喜欢Velocity。表现很好。我喜欢它解耦模板和数据的自然方式。

答案 3 :(得分:2)

我曾经使用过Velocity。该项目停滞不前并有一些已知问题,因此切换到Freemarker。我相信(不要引用我)Freemarker的出现是因为Velocity失去了动力。没有双关语。

此后,Velocity再次变得活跃,至少有一段时间了。我现在更喜欢Freemarker,但这两个中的任何一个都很好用。我会选择更容易插入Spring MVC的插件。

答案 4 :(得分:0)

我同意Sean Patrick Floyd JSP应该非常快。 在大多数情况下,甚至比其他模板引擎更快,即使它们被缓存。

如果您真的遇到与JSP相关的性能问题,那么您应该重新考虑使用JSP的方式。

至少,如果你有一个导致性能问题的热点,那么你可以手工构建这个(希望彻底的)小pice(StringBuilder)。

所以要解决这个问题:我相信JSP是禁食的(除了手工完成),但另一方面,你必须有一个非常特殊的用例来运行任何主要模板的性能问题你提到过的。

答案 5 :(得分:0)

您应该尝试MVEL。它比我知道的任何东西都快(包括StringTemplate),非常强大,感觉就像普通java中的脚本一样。

<p>
   @foreach{index : alphabetical}
     <a href="@{index.uri}">@{index.description}</a>
   @end{}
</p>

<a href="@{ua.pageURI}">
   @{org.apache.commons.lang.StringEscapeUtils.escapeHtml(ua.name)}
</a>
相关问题