17

我刚开始阅读Java EE 6 教程,我有点困惑!我知道 JavaServer Pages (JSP),甚至在我本科学习期间做过一些编码。但是现在,在本教程中,我没有看到任何关于 JSP 的内容。

相反,我阅读了 Facelets,一个新的视图定义框架(如本教程中所述)。我在互联网上搜索了一下以澄清 JSP 和 Facelets 之间的区别,我发现这篇文章对我有很大帮助(尤其是BalusC 的回答)。但是这些术语对我来说仍然有点不清楚。

JSP 和 Facelets 有什么区别?Facelets 会取代 JSP,还是只是一种与 JSF 配合得更好的技术(如果是后者,为什么)?如果它们不同,我应该什么时候使用它们中的每一个?

4

1 回答 1

12

正如您从教程中所读到的,

术语 Facelets 用于指代 JavaServerTM Faces 视图定义框架,它是一种为与 JavaServer Faces 技术一起使用而开发的页面声明语言。从 JavaServer Faces 2.0 开始,Facelets 是 JavaServer Faces 规范的一部分,也是构建基于 JavaServer Faces 的应用程序的首选表示技术。

现在,JSP 是 Web 的标准视图技术。但是在采用 JSF 作为 Web 框架时,JSP 并不支持 JSF 2.0 中提供的所有特性。因此,需要一些标准视图技术来与 JSF 2.0 一起使用。所以,Facelets 就是这样。

如果您根本不使用 JSF,则不需要使用 Facelets。在这种情况下,您可以使用 JSP。或者很少有其他模板框架,例如 FreeMarker 和 Velocity。此外,一些 Web 框架定义了自己的标记,例如 Struts2。因此,如果您决定使用 Struts,那么使用 Struts 标记是最好的选择。

于 2010-02-04T03:46:28.937 回答