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中.
atr*_*ain 11
以下是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)
速度甚至更好的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