2009-11-19 20 views
0

尽管我花了整整一天的时间开发一个JSF应用程序,但我从来没有对此事进行任何培训,而且我必须管理我是一个仍然混淆了整个JSF难题适合在一起。 JSF只是看起来有点扔给我。向我解释不同的JSF组件库相关

  • JSF-API
  • jslt
  • 小面
  • MyFaces的
  • 特立尼达
  • 多巴哥
  • JSP API

,我会很感激,如果任何人都可以给我简要介绍了这些组件NTS,哪些是标准,哪些可以被排除在外,哪些可以/需要一起使用

回答

3

JSP和JSTL

JSP有经历了许多迭代,但这是Java EE的核心动态页面技术。这是一个可服务的API,但使用JSP通常意味着更多的手动管理代码/资源。

JSTL是JSP标准模板库。这是一组标准的JSP标签。不要将这些标签与JSF标签混合;它们属于不同的编程模型。

JSF API

JSF规范。这是JSF Model-View-Presenter框架的核心。这指定了一组简单的核心组件和核心生命周期工件。有两个广为人知的实现:Mojarra(开源的Sun API)和Apache MyFaces。 Java EE 5及更高版本的一部分。

的Facelets

视图技术设计用于JSF。使用此代替JSP。您不能在Facelets视图中使用JSP标签。这在Java EE 5中不是标准的,但是在JSF2中进行了标准化(因此即将推出Java EE 6)。 Facelets提供的更好的模板通常意味着您可以更少地依赖第三方库。

Facelets提供了一些看起来像JSP JSTL标签但不共享任何代码的标签。通常应该避免使用这些标签(请参阅Facelets doc获取建议)。

阿帕奇特立尼达和多巴哥

这些是提供组件和其他设施JSF库。由于核心控件集合相当基础,因此常常使用这样的库,特别是在不使用Facelets的情况下。这些不是Java EE标准的一部分。库兼容性各不相同另请参阅jsfmatrix.net

+0

我并不主张全面禁止JSTL标签 - 民众应该阅读文档并自行判断。这是一个人们遇到问题的领域,尤其是当他们将JSP期望纳入JSF应用程序并将其作为另一个标记库处理时。将JSF和非JSF标签混合在一起需要详细了解两个生命周期(并且我常常觉得我太像编程到实现而不是抽象)。不过,你对这些功能是正确的。新的应用程序应该尝试使用Facelets - 它更适合。 – McDowell 2009-11-20 10:15:47

+0

JSTL不是JSP标准标签库吗? – InverseFalcon 2009-12-17 23:02:06

+0

@InverseFalcon - 这是,但我不确定你的意思。 – McDowell 2009-12-18 10:18:39

2
  • JSF-API是在javax.faces接口和类
  • JSTL是一组标准的标签(主要是在JSP中使用) - 其中大部分被替换为JSF标签,顺便说一句
  • 小面是一个演示和模板框架(如JSP)
  • MyFaces的是JSF标准的实现。另一种可能性如果JSF RI(参考实现)
  • 特立尼达和多巴哥是组件库 - 一些东西不包含在JSF组件的默认设置
  • JSP是替代小面(或反之亦然),其也是一个演示框架。
  • UEL - (你没问,但它是重要的) - 统一表达式语言 - 设定的规则,你的#{..}表达式