JSF vs Facelets vs JSP

对于Java Server Faces与所谓的facelets之间的具体区别,我似乎无法得到明确的答案。 任何人都可以给我一个明确的答案吗?

另外,据我所知,无论是JSF还是JSP都可以用来创builddynamic网页,但是两个看似矛盾的细节让我感到困惑。 我听说过以下两点:

  1. JSF是JSP的替代品; 和

  2. JSF和JSP在Java的Web层MVC范例中构成View的不同部分

那是哪个呢? 逻辑决定了它几乎肯定不能同时存在!

  • JSF是基于MVC模式的Web UI的标准化Java框架
  • JSP是用于从模板生成网页的(更古老的)标准,它们可以用作JSF应用程序中的视图,也可以与JSF分开使用。
  • Facelets是基于JSF标准第2版中引入的纯XML模板(无脚本)的替代视图技术。 他们只能在JSF应用程序中使用。

鉴于此,让我们来看看你的相互矛盾的陈述:

JSF是JSP的替代品; 和

不完全正确,因为JSF可以使用JSP来实现其视图(并且必须在JSF 2之前)。 但是,使用Facelets的JSF应用程序可以被看作是基于JSP技术的替代品。

JSF和JSP在Java的Web层MVC范例中构成View的不同部分

完全错误 – JSF涵盖了整个MVC模式(虽然它可以与EJB重叠,因为两者都基于可以在同一类中混合的注释)。

从维基百科文章(JSF)

JSF是基于组件驱动的UIdevise模型的一个请求驱动的MVC Web 框架 ,使用称为视图模板或Facelets视图的XML文件。

JSF是Web框架,Facelet是JSF的视图模板

从维基百科文章(JSP)

JavaServer Pages( JSP )是一种Java技术,可帮助软件开发人员提供dynamic生成的基于HTML,XML,

另外看看这个主题jsf和jsp的区别

Java Server Pages(JSP)是一种Java技术,它使Web开发人员和devise人员能够快速开发并轻松维护利用现有业务系统的信息丰富的dynamicWeb页面。 JSP技术将用户界面与内容生成分开,使devise人员能够在不改变底层dynamic内容的情况下更改整体页面布局。

Facelets是第一个为JSF(Java Server Faces)devise的非JSP页面声明语言,与JSP相比,它为JSF开发人员提供了一个更简单,更强大的编程模型。 它解决了用于Web应用程序开发的JSP中出现的不同问题。

这里是一个比较脚本和faceletsfunction的表格:

在这里输入图像说明 资源

我一直在寻找同一个问题的答案。 我发现这些链接非常有帮助:

JSP应用程序模型示例: http : //netbeans.org/kb/docs/javaee/ecommerce/design.html#architecture

基本的JSF概念,一些例子: http : //netbeans.org/kb/docs/javaee/ecommerce/conclusion.html#framework