JSP 和 Facelets 之间有什么区别?

2022-09-03 02:37:11

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

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

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


答案 1

正如您可以从教程中读到的,

术语 Facelets 用于指 JavaServerTM Faces View Definition Framework,它是一种页面声明语言,专为与 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标记是要走的路。


答案 2