向我解释不同的JSF组件库

时间:2009-11-19 14:06:24

标签: jsf jstl facelets myfaces trinidad

即使我花了一整天开发一个JSF应用程序,我也从来没有接受任何关于这个问题的培训,而且我必须管理我仍然仍然混淆整个JSF难题是如何组合在一起的。 JSF看起来有点像我一样。

  • JS​​F-API
  • jslt
  • 小面
  • MyFaces的
  • 特立尼达
  • 特立尼达和多巴哥
  • jsp api

如果有人能够快速描述这些组件,哪些是标准组件,哪些组件可以省略,哪些组件可以/需要一起使用,我将非常感激

2 个答案:

答案 0 :(得分: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以获取建议)。

Apache特立尼达和多巴哥

这些是提供组件和其他工具的JSF库。因为核心控件集是相当基本的,所以通常使用这样的库,尤其是在不使用Facelets的情况下。这些不是Java EE标准的一部分。库兼容性各不相同另请参阅jsfmatrix.net

答案 1 :(得分:2)

  • jsf-api是javax.faces中的接口和类
  • jstl是一组标准标记(主要用于JSP) - 其中大部分都被JSF标记替换,btw
  • facelets是一个演示和模板框架(如jsp)
  • myfaces是JSF标准的实现。另一种可能性是JSF RI(参考实现)
  • trinidad和tobago是组件库 - 一些未包含在默认jsf组件集中的好东西
  • jsp是facelets的替代品(反之亦然),它也是一个表示框架。
  • UEL - (您没有问,但这很重要) - 统一表达语言 - 您的#{..}表达式的规则集