为什么Facelets作为JSF2.0以后的视图定义语言比JSP更受欢迎?

为什么Facelets作为JSF2.0以后的视图定义语言比JSP更受欢迎?

我从JSF2.0开始看到,Facelets视图定义语言是首选的视图定义语言,而不是作为遗留后退而被弃用的JSP。我想理解为什么Facelets比JSF2.0以后的视图定义语言更优先于JSP?我知道JSP也有一些模板行为,这是采用Facelets的主要驱动点。

PS:我在stackoverflow上经历过这篇文章,但我不认为它回答了我的问题。因此将此作为单独的问题发布。


梵蒂冈之花
浏览 475回答 2
2回答

撒科打诨

确实,JSP具有一些&nbsp;模板功能,但在JSF中使用JSP的最大缺点是JSP在遇到模板文本内容时立即写入响应,而JSF希望使用它进行一些前/后处理。在JSF 1.0 / 1.1中有以下JSF代码<h:outputText&nbsp;value="first">&nbsp;second&nbsp;<h:outputText&nbsp;value="third">&nbsp;fourth会产生第二名第四名这是在JSF 1.0 / 1.1期间头疼的问题。开发人员将需要包装模板文本一样second,并fourth在上面的例子<f:verbatim>在所有地方的标签。JSF 1.2已经通过一个改进的视图处理程序来解决它,该处理程序解析JSP而不是执行它,但由于JSP语法不像XML那样“格式良好”,因此它仍然非常笨拙。强烈需要基于XML的视图技术,以便可以使用基于SAX的高效解析器。Facelets诞生了(在Ken Paulsen的“JSFTemplating”中)。此外,统一的EL&nbsp;#{}不能在JSP模板文本中使用,导致丑陋 - 并且对于初学者而言不直观&nbsp;- 混合${}和#{}。此外,JSTL可以在JSP上的JSF 1.x中不能用作视图构建时间标记。此外,带有<% %>东西的JSP语法是老派,在JSP中嵌入原始Java代码的可能性被认为是打破MVC意识形态的一种非常糟糕的做法。总而言之,从JSF / MVC的角度来看,JSP简直是丑陋而且非常糟糕,Facelets简直干净且令人敬畏。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java