ICEfaces 和 RichFaces是目前两款实现的非常不错的JSF Component. 各自提供了丰富的组件,足以满足绝大部分的界面要求。当然也都支持open source. 和IDE的配合使用也很方便。
大家在选择学习之前肯定会对此有个比较。我编辑了网上的一点资料,方便学习。
下面是ICEfaces和RichFaces的简单介绍:
ICEfaces是一个基于Ajax的JSF开发框架。ICEfaces原本是一个商业产品,现已开源基于Mozilla Public License发布。它提供一整套完整的Java EE应用程序开发组件,能够帮助开发人员用纯Java(not JavaScript)快速开发瘦客户端胖互联网应用程序(Rich Internet Applications:RIA)。可通过其提供的一个在线Demo体验一下ICEfaces的强大组件。 (摘自:http://www.open-open.com/open171367.htm)
JBoss最近发布了RichFaces JSF类库的3.1版,作为与Exadel的合作果实,这是首次将Ajax4JSF项目集成进曾以商业发行的RichFaces。主要特征:
- JBoss Seam Integration - configuring and using RichFaces components with Seam is greatly simplified
- Integration with script.aculo.us - RichFaces now supports using script.aculo.us effects with RichFaces components
- Tooltip support - Any component can now have a tooltip associated with it
- Several new JSF components - calendar control, data grid, data list, scrollable datatable, and refactored tree control which avoids reliance on a Model-and-View separation through tag-level data binding
产品网站:http://labs.jboss.com/jbossrichfaces
下面是两个国外技术同行关于此问题的解释:
-
支持RichFaces
1) RichFaces provides concept of eventsQueue to prevent too many AJAX requests getting sent. IceFaces has no equivalent.
2) RichFaces modal panels can be displayed using Javascript - haven't figured out how to do this easily using IceFaces.
One major drawbacks of the RichFaces library is the lack of a pop-up date calendar component for date input.
-
支持ICEfaces
I think the major differences come in the framework. The major advantages to the ICEfaces framework over A4J are:
1) Page-level Ajax: With ICEfaces the framework figures out how to make the page updates. With A4J the developer needs to wire together the part of the page that might effect each other. This can be a tedious exercise and impacts the separation of roles between the developer and designer. With ICEfaces the page update mechanism is completely transparent to the developer and the designer. They can focus on application features.
2) Ajax Push - The ability to push presentation changes to the client in an asynchronous fashion is a fundamental capability of the ICEfaces framework and always has been. Most other frameworks are playing catchup in this regard. A4J does not support Ajax Push as of yet.