我是从JSF2.0开始的,我使用了一个教程作为参考,但我有以下问题:
本教程仅使用了两个库:jsf-api.jar、jsf-impl.jar (但也有来自Mojarra Project的JSTL)。
我也试图下载它们,但似乎无法访问该网站。所以我使用了Apache MyFaces,但是为了运行这个例子,我必须添加8个jar (commons-*,myfaces-*)。
如果我使用MyFaces,为什么我需要更多的jars?我应该更喜欢Mojarra作为清淡的吗?而且下载页面真的是JSF Mojarra吗?
谢谢
发布于 2010-12-26 11:15:51
如果我使用MyFaces为什么我需要更多的jars?
因为这些commons-*依赖项没有捆绑在MyFaces中。另一方面,如果您使用的是Apache.org中的其他库,这些库也使用这些commons-*依赖项,那么最终得到的库的总大小会更小。
应该注意的是,从Mojarra 2.1.6开始,可以使用单一的JAR文件格式javax.faces.jar,因为Mojarra 2.3.9将其重命名为jakarta.faces.jar。
我应该更喜欢Mojarra的清淡吗?
这是一个非参数。您应该看看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在性能方面是更好的选择,因为它采用了一种不同且更有效的方法来计算状态增量,尤其是在使用大型组件树时。Mojarra是从2.1.22版本开始才赶上的。在2.0/2.1时间线中,Mojarra只有在复杂/嵌套的组合中存在严重的问题(a.o.中断状态保存,仅处理最后一次迭代的表单,失败的<f:ajax>等)和flash scope implementation (初始实现完全不是防弹的)。MyFaces也有自己的一组but,但它们是可控的。
现在,对于JSF 2.2,人们不能提前说出哪一个更好。Bug通常只能在以后才暴露出来,健壮性只能在事后才能评估。只要选择你“感觉”最好的实现。浏览他们的问题报告(MyFaces和Mojarra),了解以前已修复的问题和当前未解决的问题。如果您遇到特定的bug,请尝试使用这两种实现来排除其中一个。必要时报告,以保持两个实现的整体质量较高。
下载页面也确实是
他们的主页已经被移动了好几次。目前(2019年11月)它位于https://eclipse-ee4j.github.io/mojarra。您也可以在org.glassfish:jakarta.faces in Maven Central中找到这些库。您可以在eclipse-ee4j/mojarra project in GitHub中找到源代码。
另请参阅:
发布于 2011-06-25 12:01:41
答案来自我的博客:
http://lu4242.blogspot.com/2011/06/10-reason-why-choose-myfaces-core-as.html http://lu4242.blogspot.com/2012/05/understandingjsf-2-and-wicket.html
更新2013年7月:请访问JSFCentral查看系列文章和2013年更新:
http://www.jsfcentral.com/articles/understanding_jsf_performance_3.html
乍一看,两个JSF实现(MyFaces和Mojarra)都做同样的事情,因为它们基于相同的标准。您可以从一种实现更改到另一种实现,这是JSF标准规范质量的事实。
但实际上,MyFaces Core2.x比Mojarra更好的原因有很多。请注意,我是MyFaces项目的提交者,因此我将在这里仅给您我的观点:
更新: 2.1.0: 47,2.1.1: 6,2.1.2: 84,2.1.3: 9,2.1.4: 74,2.1.5: 7,2.1.6: 35,2.1.7: 52
基于代码的
更新2012年5月
请参阅本文10 reason why choose MyFaces Core as JSF implementation for web applications
对于那些想要查看MyFaces、Mojarra和Wicket之间性能比较的人来说,可以看看Understanding JSF 2 and Wicket: Performance Comparison
更新2013年7月
这种比较被扩展到包括其他框架,如Spring MVC、Tapestry、Grails 2和Wicket。请参阅JSFCentral上的文章:Update JUL 2013 at JSFCentral
发布于 2010-12-26 02:55:50
我会说,这真的无关紧要。
我最近使用Myfaces和Primefaces启动了一个JSF2.0项目。上周,为了调查一个bug,我尝试在Mojarra上运行它。所要做的就是交换JAR并删除web.xml中特定于Myfaces的条目--一切都正常工作,没有任何问题。诚然,这是一个没有使用所有JSF功能的原型,但我对这种通过标准遵从性实现兼容性的演示印象非常深刻。
如果我使用MyFaces为什么我需要更多的jars?
jsf-impl和myfaces-api相当于Mojarra的
https://stackoverflow.com/questions/4530746
复制相似问题