JSF和Facelets有什么区别?

20
我正在跟随 Java EE6 教程,但是我不理解 JSF 和 Facelets 之间的区别。第四章有一个“开发简单的 JavaServerFaces 应用程序”的部分,第五章有一个“开发简单的 Facelets 应用程序”的部分,就我所看到的来说,这两个示例都使用完全相同的过程 - 用于标记的 .xhtml 页面、用于保存一些数据的后端 bean,然后是一个将 URL 映射到“FaceletsServlet”的 web.xml 文件。
据我所知,Facelets 是带有诸如 <h:head> 和 <h:inputText> 标签以标记网页的 .xhtml 页面。
那么 JSF 是什么?我已经读到可以使用 JSP 或 Facelets 与 JSF 一起使用,那么这是否意味着 JSF 的作用是提供由 JSP 或 Facelets 使用的标签库?

2
可能是JSF、Servlet和JSP之间的区别是什么?的重复问题。 - Luiggi Mendoza
3个回答

33
  • JSF - Java Server Faces 是一个全面的应用程序开发框架。它包含许多方面,其中之一是视图处理器。JSF (维基百科)JSF (Stack Overflow)

  • Facelets 是 JSF 的视图处理器。在 JSF 2.0 之前,JSP 是默认的视图处理器,但问题是 JSP 与 JSF 的组件化框架不太兼容。Facelets 是从头开始设计的,以便能够很好地与 JSF 协同工作。Facelets (维基百科)Facelets (Stack Overflow)

标记库是 JSF 规范的不同部分。它们是 UI 组件的集合。Facelets 不是一个标记库,而且许多标记库可以与 Facelets 一起使用。


13

JSF(JavaServer Faces)是一个基于组件的系统。这些组件以库的形式进行组织。

JSF是基本标准,并定义了标准标签库“core”和“html”。其中包括用于基本元素的标记,如输入字段、按钮、标签和链接。Facelets是面向模板的标签库,最初是单独分发的,但现在已包含在JSF标准中。Facelets包含诸如ui:composition、ui:insert和ui:define等标签,可用于模板制作。还有许多其他标签库可以与JSF一起使用,如primefaces、richfaces、tomahawk和trinidad。


3

JSF通常与Facelets一起使用,以前我们使用的是jsp。Facelet是一种基于xml的视图技术。

Facelets最初是作为JSF 1.1和JSF 1.2的另一种视图声明语言创建的,这两种语言都使用JSP作为默认的视图声明语言。从JSF 2.0开始,JSF专家组将Facelets提升为默认的视图声明语言。JSP已被弃用。

Facelets提供的重要功能包括模板化、组合组件和内容重用。

http://www.ibm.com/developerworks/library/j-facelets/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接