19

我正在关注 Java EE6 教程,但我不明白 JSF 和 Facelets 之间的区别。第 4 章有一个“开发简单的 JavaServerFaces 应用程序”部分,第 5 章有一个“开发一个简单的 Facelets”应用程序部分,据我所知,这两个示例使用完全相同的过程 - 用于标记的 .xhmtl 页面,一个支持 bean 来保存一些数据,然后是一个将 url 映射到“FaceletsServlet”的 web.xml 文件。

从我可以收集到的 Facelets 是带有标签的 .xhtml 页面,例如用于标记网页的 <h:head> 和 <h:inputText>。

但是什么是JSF?我读过 JSP 或 Facelets 都可以与 JSF 一起使用,那么这是否意味着 JSF 的作用是提供 JSP 或 Facelets 使用的标记库?

4

3 回答 3

34
  • JSF - Java Server Faces 是首要的应用程序开发框架。它包含许多方面,其中之一是视图处理程序。JSF(维基百科)JSF(堆栈溢出)

  • Facelets 是 JSF 的视图处理程序。在 JSF 2.0 之前,JSP 是默认的视图处理程序,但问题是 JSP 不能很好地与 JSF 的基于组件的框架一起工作。Facelets 的设计初衷就是为了与 JSF 很好地协同工作。Facelets(维基百科)Facelets(堆栈溢出)

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

于 2012-07-12T19:13:30.283 回答
12

JSF 就像您可能已经收集了一个基于组件的系统一样。这些组件被组织在库中。

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

于 2012-07-12T18:24:44.700 回答
3

在我们使用 jsp 之前,JSF 与 Facelets 一起使用。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/

于 2013-03-26T10:25:18.357 回答