Bal*_*usC 43
确实,JSP具有一些 模板功能,但在JSF中使用JSP的最大缺点是JSP在遇到模板文本内容时立即写入响应,而JSF希望使用它进行一些前/后处理.在JSF 1.0/1.1中有以下JSF代码
<h:outputText value="first"> second <h:outputText value="third"> fourth
Run Code Online (Sandbox Code Playgroud)
会产生
第二名第四名
这是在JSF 1.0/1.1期间头疼的问题.开发人员将需要包装模板文本一样second,并fourth在上面的例子<f:verbatim>在所有地方的标签.JSF 1.2已经用改进的视图处理程序解决了它,它解析JSP而不是执行它,但由于JSP语法不像XML那样"格式良好",所以它仍然非常笨拙.强烈需要基于XML的视图技术,以便可以使用基于SAX的高效解析器.Facelets诞生了(在Ken Paulsen的"JSFTemplating"中).
此外,统一的EL #{}不能在JSP模板文本中使用,导致丑陋 - 并且对于初学者而言不直观 - 混合${}和#{}.此外,JSTL可以在JSP上的JSF 1.x中不能用作视图构建时间标记.此外,带有<% %>东西的JSP语法是老派,在JSP中嵌入原始Java代码的可能性被认为是打破MVC意识形态的一种非常糟糕的做法.
总而言之,从JSF/MVC的角度来看,JSP简直是丑陋而且非常糟糕,Facelets简直干净且令人敬畏.
小智 12
我在互联网上找到了以下答案.
JSP编译 - 时间开销
每次编辑,保存和重新加载JSP页面时,服务器的JSP编译器都会生成Java servlet代码并将其编译为servlet.这称为JSP转换过程,通常需要1-2秒,具体取决于服务器性能.
Facelets XML编译
与JavaServer Pages不同,Facelets页面不会编译为servlet.由于Facelets页面符合XML,因此Facelets框架使用基于SAX的快速编译器来构建视图.此外,Facelets可以配置为立即检测和呈现页面更改,从而加快JSF开发周期.
预订Ian Hlavats的"JSF 1.2组件",第49页:
在JSF应用程序开发期间,我们经常对JSF页面进行更改,导致我们的JSP页面频繁重新编译,并且这种编译时间开销会增加.
Facelets页面是简单的XML文档(XHTMl页面),它们永远不会编译为servlet,而是使用基于SAX的编译过程为视图构建UI组件树.因此,与JSP相比,Facelets更快,因为它没有JSP转换开销.
| 归档时间: |
|
| 查看次数: |
15105 次 |
| 最近记录: |