JSP vs Velocity有什么更好的?

fly*_*ire 34 java jsp velocity

JSP和速度之间的优势 - 性能 - 易于使用 - 易于创建可重用组件 - 开源第三方的可用性 - IDE支持

Pat*_*sen 43

@Vartec:我不认为"严格分离视图与业务逻辑"是jsp中不存在的速度特性.您可以在jsp(或多或少)中执行业务逻辑,但根本不建议这样做.但我同意你对语法的看法.

性能

JSP被编译为Java,所以我不认为速度更快.(我自己没有做基准测试)

便于使用

对于设计师:速度对于程序员:(恕我直言)jsp,因为它更接近代码

易于创建可重用的组件

JSP有很多组件Velocity本身没有组件(不是组件导向的)

开源第三方的可用性

我看到使用JSP或JSP相关技术的项目远远多于速度.也许是因为速度真的很低...... :-)

IDE支持

jsp有很多工具.特别是eclipse jboss插件/工具套件有一个很好的jsp编辑器.

Velocity的插件大多不具备功能或非常基本(如果你有语法高亮,你会很幸运)

更新 如果您现在正在寻找模板引擎,我建议您查看百里香.它的速度相对较轻,可以用来模拟一些基于文本的模板,只需几行代码,或者用作全功能的模板引擎,例如在webapp中.


var*_*tec 19

Velocity的优点:

  • 严格区分视图与业务逻辑
  • 图形设计师可以理解的简单语法


atr*_*ain 11

以下是Freemarker,但比较可能仍然相关.

在这两种技术的发展的这一点上,似乎选择一种技术的主要原因是:

  1. 你需要的东西是一个而不是另一个
  2. 您希望阻止视图开发人员将Java scriptlet放入JSP页面
  3. 您的开发人员比其他人更舒服

似乎没有那么大影响的原因:

  1. 速度.典型的Java EE应用程序中有太多层,其影响远远大于视图渲染器可能花费的几毫秒.事实上,如果我的应用程序执行subpar,这可能是我要解决的最后一层.
  2. IDE支持.JBoss Tools提供了Freemarker编辑器,JSP工具也是众所周知的.
  3. 句法.由于EL和JSTL,JSP 2和Freemarker对于许多基本操作具有几乎相同的语法.

Freemarker示例:

<#list foos as foo>
  <tr>
     <td>${foo.field1}</td>
     <td>${foo.field2}</td>
     <td>
        <#list foo.childObjects as child>
           <#if child.name == 'bar'>
              ${child.value}
           </#if>
        </#list>
     </td>
  </tr>
</#list>
Run Code Online (Sandbox Code Playgroud)

JSP-EL-JSTL示例:

<c:forEach items="${foos}" var="foo">
  <tr>
     <td>${foo.field1}</td>
     <td>${foo.field2}</td>
     <td>
        <c:forEach items="${foo.childObjects}" var="child">
           <c:if test="${child.name == 'bar'}">
              ${child.value}
           </c:if>
        </c:if>
     </td>
  </tr>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)


che*_*vim 8

速度甚至更好的FreeMarker.在JSP中,您不能为pojo层次结构进行运行时调度,并且所有内容都是静态类型的,这很痛苦.此外,如果您创建了许多JSP2.0自定义标记(例如超过100-150),那么由于Jasper无效率地有效地解决依赖关系,您的开发部署周期将大大减慢.

另一方面,JSP具有很好的工具支持.

慢速JSP编译参考:

http://www.mailinglistarchive.com/users@tomcat.apache.org/msg10786.html

http://marc.info/?l=tomcat-dev&m=119377083422720&w=2

  • FreeMarker更先进,它可以达到比Velocity更低的水平,并且强大的功能带来了巨大的责任;)http://freemarker.org/fmVsVel.html (2认同)