Cra*_*lus 48 jsf myfaces jsf-2 mojarra
我开始使用JSF2.0我使用了一个教程作为参考,但我有以下问题:
本教程只使用2个库:jsf-api.jar,jsf-impl.jar(但也有JSTL)从钻嘴鱼科项目.
我试图下载它们但似乎网站无法访问.所以我使用Apache MyFaces,但运行示例我必须添加8个罐子(commons-*,myfaces-*).
如果我使用MyFaces,为什么还需要更多的罐子?我是否应该更喜欢Mojarra?下载页面确实是JSF Mojarra?
谢谢
Bal*_*usC 73
如果我使用MyFaces,为什么还需要更多的罐子?
因为这些commons-*依赖项未捆绑在MyFaces中.另一方面,如果你正在使用Apache.org中也使用这些commons-*依赖项的其他库,那么你最终会得到更小的总大小库.
注意应该是因为Mojarra 2.1.6可以使用单个JAR文件格式javax.faces.jar.
我是否应该更喜欢Mojarra
这是一个非争论.您应该了解JSF实现的强大和良好维护.
Mojarra的祖父,Sun JSF RI 1.0以及RI 1.1的早期版本都被令人讨厌的错误搞得一团糟.那一刻(2004-2006左右),MyFaces肯定是更稳定的选择.
从2006年初的1.1_02和1.2_02开始,新的Sun/Oracle JSF开发团队做了很多工作.不仅有错误修正,还有性能增强.在Mojarra 1.2生命周期的大约一半(大约在2007-2009),Mojarra是比MyFaces更好的选择.
由于JSF 2.0带有新的部分状态保存管理,MyFaces在性能方面是更好的选择,因为计算状态增量的方法不同且更有效,特别是在使用大型组件树时.Mojarra仅在2.1.22版本之后就赶上了.在2.0/2.1时间线期间,Mojarra jakarta.faces.jar在复杂/嵌套组合中只有严重的问题(ao破坏状态保存,只处理最后迭代的形式,失败<ui:repeat>等)和flash范围实现(初始实现完全不是防弹).MyFaces也有自己的一组错误,但它们是可管理的.
现在,使用JSF 2.2,人们不能事先说出哪一个更好.错误通常仅在以后暴露,并且稳健性只能在后果期间进行评估.只要选择你认为最好的任何实现.浏览他们的问题报告(MyFaces和Mojarra),了解以前修复的问题和当前未解决的问题.如果您遇到特定错误,请尝试使用这两种实现来排除其中一个.如有必要,报告以保持两种实施的整体质量.
下载页面确实是JSF Mojarra?
他们的主页已被移动了好几次.目前(2017年9月)它位于https://javaserverfaces.github.io您也可以<f:ajax>在Maven Central找到库.您可以org.glassfish:jakarta.faces在GitHub中找到项目中的源代码.您可以eclipse-ee4j/mojarra在那里找到安装说明.
lu4*_*242 45
答案来自我的博客:
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 Core 2.x比Mojarra更好.注意我是MyFaces项目的提交者,所以我会在这里给出你的观点:
2012年5月更新: 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
社区代码:MyFaces社区非常重视有很多JSF知识的人.订阅用户和开发邮件列表是了解正在发生的事情,收到反馈并了解其他对JSF感兴趣的人的最佳方式.请参阅MyFaces邮件列表
众所周知,Apache可以从Sun/Oracle中获取所有内容并使其更好.在这种情况下,MyFaces Core对部分状态保存,复合组件等进行了一些很好的优化!
MyFaces Core是OSGi友好的.当您需要对类加载进行更多控制时,它提供了一些SPI接口来处理特殊设置.
MyFaces Core与facelets 1.1.x有更好的兼容性!只需将org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS web配置参数设置为true,即可激活特殊模式.没有c:如果标签或c:forEach或ui:包括已经破坏了!2012年5月更新在MyFaces Core内部完成了一项改进算法,即使在使用facelets动态更新组件树时,也会减少部分状态.这个参数不再是必需的.
MyFaces还有其他项目(特立尼达,多巴哥,Tomahawk,ExtVal,CODI,Orchestra,PortletBridge RI ......),可以帮助保持代码调整,因为所有这些项目都是针对MyFaces Core进行测试的,如果有错误的话,那就是处理得更快.
您可以使用svn签出并轻松构建任何MyFaces项目,因为它们都基于maven并且大多数IDE都提供maven支持.
Mojarra在当前时间(2011年6月)有一些与国家储蓄相关的讨厌的错误,MyFaces没有,因为它的实现完全不同.事实上,MyFaces部分状态保存算法提供了比Mojarra更好的与JSF 1.2状态保存的兼容性.但是请注意Mojarra的人正在努力解决这个问题,但要解决这个问题需要几个月,甚至几年.
创新发生在MyFaces上.
2012年5月更新
请参阅本文10选择MyFaces Core作为Web应用程序的JSF实现的原因
想要在MyFaces,Mojarra和Wicket之间看到性能比较的人看起来理解JSF 2和Wicket:性能比较
更新2013年7月
比较扩展到包括其他框架,如Spring MVC,Tapestry,Grails 2和Wicket.请参阅JSFCentral上的文章:JSFCentral的2013年7月更新
我会说这没关系.
我最近使用Myfaces和Primefaces开始了一个JSF 2.0项目.上周,为了研究一个bug,我试图在Mojarra上运行它.所需要的只是交换JAR并删除web.xml中特定于Myfaces的条目 - 所有工作都没有任何问题.不可否认,这是一个不使用所有JSF功能的原型,但我对通过标准兼容性的兼容性演示印象深刻.
如果我使用MyFaces,为什么还需要更多的罐子?
我通常坚持使用Mojarra实现,除非有某些理由与其他东西一起使用.我使用Netbeans,因此最简单的方法是使用"默认"项目设置,该设置使用在GlassFish下运行的Mojarra.
最后我使用的是MyFaces,因为我正在考虑使用Tomahawk,从同一来源使用JSF实现似乎是合理的.不过我改为使用Primefaces而且在Mojarra下工作正常.
目前,似乎有很多开发正在进行JSF-2.0组件库上线.因此,您应该学习并能够在出现问题时在JSF实现之间切换.
MyFaces中有更多jar的原因是它具有比参考实现更多的功能.
| 归档时间: |
|
| 查看次数: |
47249 次 |
| 最近记录: |