我刚开始阅读 Java EE 6 Tutorial ,我有点困惑!我知道 JavaServer Pages (JSP),甚至在本科学习期间也做过一些编码。但是现在,在本教程中,我看不到有关 JSP 的任何内容。
相反,我阅读了有关 Facelets 的信息,这是一种新的 View 定义框架(如本教程中所述)。我在 Internet 上进行了一些搜索以阐明 JSP 和 Facelets 之间的区别,然后我遇到了 this post。这对我帮助很大(尤其是 BalusC's answer )。但是这些术语对我来说还是有点不清楚。
JSP 和 Facelets 有什么区别? Facelets 是否会取代 JSP,或者它只是一种与 JSF 一起工作得更好的技术(如果是后者,为什么)?如果它们不同,我应该什么时候使用它们中的每一个?
正如您从教程中所读到的,
The term Facelets is used to refer to
the JavaServerTM Faces View Definition
Framework, which is a page declaration
language that was developed for use
with JavaServer Faces technology. As
of JavaServer Faces 2.0, Facelets is a
part of JavaServer Faces specification
and also the preferred presentation
technology for building JavaServer
Faces based applications.
现在,JSP 是网络的标准 View 技术。但是当谈到采用 JSF 作为 Web 框架时,JSP 并不支持 JSF 2.0 中提供的所有功能。因此,需要一些标准的 View 技术来与 JSF 2.0 一起工作。所以,Facelets 就是这样。
如果您根本不使用 JSF,则不需要使用 Facelets。在这种情况下,您可以使用 JSP。或者很少有其他模板框架,如 FreeMarker 和 Velocity。此外,一些 Web 框架定义了自己的标记,例如 Struts2。因此,如果您决定使用 Struts,那么使用 Struts 标记是正确的选择。