ICEfaces Features

Table of Contents

New Features

ICEfaces provides some key feature enhancements over JSF 2, while inheriting all the features available in JSF 2.


JSF 2 brings many beneficial features over JSF 1.2. There is a wealth of JSF 2 documentation available on-line, but for a concise overview of new features in JSF 2, look here. The high points are enumerate below.

  • Facelets is now a first-class citizen of the JSF spec, and is the principle view declaration language in JSF 2.
  • A comprehensive composite component model enables easy development of components using only markup.
  • Ajax request processing and partial page updates have been incorporated into the JSF lifecycle.
  • Partial State Saving drastically reduces state saving overhead.
  • Broader support for system events is available.
  • Improved navigation support includes implicit, conditional and preemptive navigation.
  • HTTP GET now fully supported in the JSF lifecycle.
  • New scopes, and support for custom scopes (see ICEfaces Window Scope).
  • Annotations simplify configuration.
  • Standardized resource loading is provided.
  • Exception handling has been improved.


ICEfaces extends and simplifies JSF development in several key ways.

Framework Enhancements

The following framework enhancements extend the capabilities of the standard JSF 2 framework.

Automatic Ajax

ICEfaces includes several innovative features that cumulatively result in Automatic Ajax, completely eliminating the need for developers to wire page updates together using standard JSF <f:ajax> tags.

  • Direct-to-DOM Rendering (D2D) renders component markup to a server-side DOM that reflects the current client view. Each time the JSF lifecycle runs, a DOM comparison is done, and if there are any changes, a concise set of page updates are sent back to the client to be applied to the page. Simply adding the ICEfaces library to an existing JSF 2 application will provide dynamic partial-page-updates for all compliant components, without the need to specify the JSF <f:ajax> component in your pages.
  • Single Submit enables all components to automatically submit themselves based on user interaction. The JSF lifecycle executes on just that single component, and then the entire render phase is executed. From there the D2D mechanism determines the exact set of incremental page changes required in response to the Single Submit.

Ajax Push

Ajax Push enables real-time, multi-user collaboration in your JSF application. Any state change in the application can instantaneously push updates to other users of the application that need to be informed. New Ajax Push APIs make it simpler than ever to add collaborative features to your application.

Window Scope

The custom Window scope is designed to fill a gap in the existing scopes available for JSF 2, as it exists for the life of a browser window or tab, including surviving reloads and refreshes.

Bean Management

Annotations are provided that adjust the behavior of View-scoped beans. While View scope is a welcome addition for managing the lifecycle of beans, the behavior of View scope may not be intuitive in certain scenarios. Specifically, the annotations allow you to control the behavior of view-scoped beans across repeated navigation to the same view, and during view disposal.

Scoped Resource Registry

The ResourceRegistry allows an application to register javax.faces.application.Resource instances at run time. Each Resource is registered in a specified scope (Application, Session, View or Window) so that the resource can be garbage collected when the scope expires.

Portlet Development

Portlet support in ICEfaces is provided by the PortletFaces Bridge, an implementation of the JSR 329: Portlet 2.0 Bridge for JSF. The portlet bridge spec technically applies to JSF 1.2, but the PortletFaces version has been adapted to support JSF 2. The PortletFaces Bridge is tested and shipped with the ICEfaces 2 distribution and can be used to develop portlet applications with ICEfaces.

Client APIs

In addition to enhancing the basic Ajax features provided by JSF 2, ICEfaces extends a client-side API for monitoring interesting events that occur on the client, such as form submission, event callbacks, and Ajax Push connection monitoring.

Streamlined Configuration

While JSF 2 simplifies configuration by leveraging annotations, ICEfaces also streamlines configuration in several areas. The ICEfaces-specific servlets and many of the configuration parameters in ICEfaces 1.x are no longer necessary with ICEfaces 2+. This makes it even quicker and easier to add ICEfaces to your JSF application, and greatly reduces the possibility of lost productivity due to minor configuration errors.

Minimized Dependencies

The ICEfaces core has no 3rd-party library dependencies outside of those libraries specified in the JEE 6 "Web Profile". This further streamlines integration and software change management. Note that the ICEfaces Compatibility Libraries do require additional 3rd-party libraries when used (same as those required by ICEfaces 1.8).

Rich Components

All components used under ICEfaces inherit the benefits of Automatic Ajax, including the standard JSF components. ICEfaces offers a vast array of rich components beyond the standard ones available in JSF 2.

  • The ACE Components leverage all the features of the JSF 2 component architecture, and are based on the all-new Advanced Component Environment (ACE). The YUI JavaScript library provides rich, client-side web controls, but packaged as JSF components, so you don't need to know or use any JavaScript to include them in your application. Important features of the ACE Components include flexible form definition, UI theming/skinning, and W3C ARIA accessibility.
  • The ICE Components include all components originally developed for ICEfaces 1.8. These components provide a smooth migration path from ICEfaces 1.8.
  • The ICEfaces Enterprise Components are derived from the ICEfaces 1.8 Composite Component, but ported to the new JSF 2 Facelet architecture. Originally created by the ICEfaces application development team, these components can greatly reduce development time for a host of common application use cases. These components are available only in ICEfaces Enterprise Edition.
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

© Copyright 2021 ICEsoft Technologies Canada Corp.