我正在关注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使用的标记库?
答案 0 :(得分:30)
JSF - Java Server Faces是最重要的应用程序开发框架。它包含许多方面,其中一个是视图处理程序。 JSF (Wikipedia),JSF (Stack Overflow)。
Facelets是JSF的视图处理程序。在JSF 2.0之前,JSP是默认的视图处理程序,但问题是JSP在JSF的基于组件的框架中不能很好地工作。 Facelets是从头开始设计的,可以很好地与JSF配合使用。 Facelets (Wikipedia),Facelets (Stack Overflow)
标记库是JSF规范的不同部分。它们是UI组件的集合。 Facelets不是taglib,许多标记库可以与Facelets一起使用。
答案 1 :(得分:11)
JSF就像您可能已经收集了基于组件的系统一样。这些组件在库中组织。
JSF是基本标准,它定义了标准的taglibs核心和html。这些包括输入字段,按钮,标签和链接等基本元素的标签。 Facelets是facelets taglib,它最初是单独分发的,但现在它包含在JSF标准中。 Facelets包含像ui:composition,ui:insert和ui:define这样的标签,可用于模板化。还有许多其他标记库可以与JSF一起使用,如primefaces,richfaces,tomahawk和trinidad。
答案 2 :(得分:3)
在我们使用jsp之前,JSF与Facelets一起使用。 Facelet是一种基于xml的视图技术。
Facelets最初是作为JSF 1.1和JSF 1.2的单独的替代视图声明语言创建的,它们都使用JSP作为默认的视图声明语言。从JSF 2.0开始,JSF专家组已将Facelets提升为默认的视图声明语言。 JSP已被弃用。
facelets提供的重要功能包括模板化,复合组件,内容重用。