JSP和Facelets有什么区别?

Ale*_*lex 16 java jsp facelets

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

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

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

Ade*_*ari 11

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

术语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标记是可行的方法.

  • 是的,有点.为什么那样?因为有很多框架没有引入任何自己的框架,并且满足于JSP,还有自己的taglib.因此,JSP仍然很有用.JSF的情况和类似的框架有点不同.JSF风格各异.它根据组件做事.Tapestry是另一个,不熟悉Tapestry. (2认同)