Jsf Mojarra和MyFaces的区别

Jsf Mojarra和MyFaces的区别,jsf,jsf-2,myfaces,mojarra,Jsf,Jsf 2,Myfaces,Mojarra,我从JSF2.0开始,我使用了一个教程作为参考,但我有以下问题: 本教程仅使用了两个库:jsfapi.jar,jsf impl.jar(但也有来自Mojarra项目的JSTL) 我也试图下载,但似乎无法访问该网站。 所以我使用了ApacheMyFaces,但为了运行这个示例,我不得不添加8个JAR(commons-*,MyFaces-*)。 如果我使用MyFaces,为什么我需要更多的罐子?我应该更喜欢莫哈拉打火机吗?下载页面也确实是 谢谢除非有其他原因,否则我通常坚持使用Mojarra实现。我

我从JSF2.0开始,我使用了一个教程作为参考,但我有以下问题:

本教程仅使用了两个库:
jsfapi.jar
jsf impl.jar
(但也有来自Mojarra项目的JSTL)

我也试图下载,但似乎无法访问该网站。 所以我使用了ApacheMyFaces,但为了运行这个示例,我不得不添加8个JAR(
commons-*
MyFaces-*
)。
如果我使用MyFaces,为什么我需要更多的罐子?我应该更喜欢莫哈拉打火机吗?下载页面也确实是


谢谢

除非有其他原因,否则我通常坚持使用Mojarra实现。我使用Netbeans,因此最容易使用“默认”项目设置,它使用在GlassFish下运行的mojara

上一次我使用MyFaces,是因为我考虑使用Tomahawk,而且从同一个源代码使用JSF实现似乎是合理的。然而,我已经换成了Primefaces,在Mojarra的领导下,这很好

现在,随着JSF-2.0组件库的上线,似乎正在进行大量的开发。因此,您应该学习并能够在JSF实现之间切换,以防出现问题


MyFaces中有更多JAR的原因是它比参考实现有更多的功能

我想说这真的不重要

我最近使用Myfaces和Primefaces启动了一个JSF2.0项目。上周,为了调查一个bug,我尝试在Mojarra上运行它。只需交换jar和删除web.xml中特定于Myfaces的条目,一切都顺利进行。诚然,这是一个没有使用所有JSF功能的原型,但我对通过标准遵从性演示兼容性印象深刻

为什么我要用更多的罐子 我的脸

  • myfaces impl和myfaces api JARs是Mojarra的jsf impl和jsf api的等价物
  • myfaces bundle包含这两个,为了方便起见,您需要这两个或另外两个,而不是全部三个
  • commons-*是包含用于处理集合、JavaBean等的有用基本功能的库,否则必须重新实现这些功能(可能速度较慢,并且有更多的bug)。许多其他项目也使用这些
如果我使用MyFaces,为什么我需要更多的罐子

因为那些
commons-*
依赖项没有捆绑在MyFaces中。另一方面,如果您正在使用Apache.org上的其他库,这些库也使用那些
commons-*
依赖项,那么最终您将得到更小的总库

应该注意的是,自从Mojarra 2.1.6以来,单个JAR文件格式可用作
javax.faces.JAR
,这是因为Mojarra 2.3.9重命名为
jakarta.faces.JAR


我应该更喜欢莫哈拉打火机吗

这是一个不争的事实。您应该了解JSF实现的健壮性和维护性

Mojarra的祖父Sun JSF RI 1.0和RI 1.1的早期版本被讨厌的bug弄得乱七八糟。在那一刻(大约2004-2006年),MyFaces无疑是更稳定的选择

自2006年初1.1_02和1.2_02以来,新的Sun/Oracle JSF开发团队做了大量工作。不仅修复了错误,还增强了性能。大约在Mojarra 1.2寿命的一半(大约2007-2009年),Mojarra是比MyFaces更好的选择

自从JSF2.0(它附带了新的部分状态保存管理)以来,MyFaces在性能方面是更好的选择,因为它采用了一种不同的、更高效的方法来计算状态增量,特别是在使用大型组件树时。莫哈拉只是在第二版之后才赶上。在2.0/2.1时间线期间,Mojarra只在复杂/嵌套组合(a.o.断开状态保存、仅处理最后一次迭代的表单、失败的
等)和(初始实现完全不是防弹的)方面存在严重问题。MyFaces也有自己的一组bug,但它们是可以管理的

现在,有了JSF2.2,我们不能事先说哪一个更好。bug通常只在以后才会暴露,健壮性只能在事后评估。只要选择您“感觉”最好的实现即可。浏览他们的问题报告(和),了解以前已修复的问题和当前未解决的问题。如果遇到特定的bug,请尝试使用这两种实现来排除其中一种和另一种。如有必要,报告以保持两个实现的总体质量高


下载页面也确实是

他们的主页已经移动了好几次。目前(2019年11月)位于。您也可以在中找到这些库。您可以在中找到源代码


另见:

    • 莫哈拉和我的脸没有太大区别。您可以检查哪个版本更稳定。正如Balusc所说,MyFaces是最稳定的版本(2005-2006年)。此外,许多人在2.0之后开始使用Mojara,因为它与myfaces相比已经变得稳定了。答案来自我的博客:

      2013年7月更新:请参阅JSF Central上的系列文章和2013年更新:


      乍一看,两个JSF实现(MyFaces和Mojarra)都是这样做的,因为它们基于相同的标准。您可以从一个实现更改为另一个实现,这是JSF标准规范质量的一个事实

      但从底层来看,MyFacesCore2.x优于Mojarra的原因有很多。请注意,我是MyFaces项目的提交人,因此我将在这里向大家介绍我的观点:

      • 很多问题已经解决。仅在2.0.x分支中,从2.0.0-alpha到2.0.7,它已关闭835个问题。这提供了一个“原始”度量,来衡量有多少贡献和反馈