Java JSP和Facelets之间有什么区别?

Java JSP和Facelets之间有什么区别?,java,jsp,facelets,Java,Jsp,Facelets,我刚开始读这本书,我有点困惑!我了解JavaServerPages(JSP),甚至在本科学习期间做过一些编码。但现在,在本教程中,我没有看到任何关于JSP的内容 相反,我阅读了Facelets,一种新的视图定义框架(如本教程所述)。我在互联网上搜索了一下,以澄清JSP和Facelets之间的区别,我发现这对我帮助很大(尤其是)。但这些术语对我来说还是有点不清楚 JSP和Facelets之间的区别是什么?Facelets是要取代JSP,还是它只是一种能更好地与JSF配合使用的技术(如果是后者,为什

我刚开始读这本书,我有点困惑!我了解JavaServerPages(JSP),甚至在本科学习期间做过一些编码。但现在,在本教程中,我没有看到任何关于JSP的内容

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


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

正如您在教程中看到的

术语Facelets用于指代 JavaServerTM面向视图定义 框架,这是一个页面声明 为使用而开发的语言 使用JavaServer Faces技术。作为 在JavaServerFaces2.0中,Facelets是一个 JavaServerFaces规范的一部分 也是首选的演示文稿 构建JavaServer的技术 基于人脸的应用程序

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


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

为了避免混淆和理解清楚,我建议您学习JSP。之后,您将自动能够看到自己。JSP并没有过时,在许多Java web应用程序中仍然作为一种视图技术使用。因此,如果我理解正确,Facelets和JSP(以及其他标记)都是将数据(通过使用bean或执行其他操作)放入web页面的方法,对吗?您应该使用哪一个完全取决于框架。我说的对吗?是的,有点。为什么呢?因为有很多框架都没有引入自己的任何东西,并且都是JSP内容,还有自己的taglib。因此,JSP仍在大量使用中。JSF和类似的框架的情况有点不同。JSF的风格不同。它在组件方面做事情。Tapestry是另一个,但对Tapestry不太熟悉。非常感谢。我终于明白了!:)尽管我看不出有这么多Java框架存在的意义。。。。!在我看来,在Django和Rails等快速web应用程序框架出现之后,Java社区开始考虑类似的易于开发的东西,并有可能缩短开发时间。所以我们最终会有很多麻烦。其他每一个框架都是为了吸引特定类型的头脑/开发人员。Wicket更倾向于Java开发人员。Tapestry声称,很少有人对设计师友好。Struts2的出现是因为Struts肿胀。春天来了,让我们的生活更轻松。Struts是第一个JavaWeb框架AFAIK。还有很多,选择一个确实很困难。FWIW:我改进了我的链接答案,加入了更多关于JSP和Facelets的内容。检查关于JSF的段落。@BalusC非常好,谢谢。信息量很大!