Since 3.1
The icecore:setEventPhase component allows the application to specify the JSF lifecycle-phase that specified events will be broadcast in, for events originating from components in its child hierarchy.
Note:
Some iterative containers, such as UIRepeat, UIData and its sub-classes, will wrap events inside another event type that records source row information, so if the iterative container is in-between setEventPhase and the intended source component, in the child/parent component hierarchy, that will interfere with setEventPhase's ability to alter events by their class name. Only selecting all events by specifying an events value of "FacesEvent" would work.
To use the icecore:setEventPhase component, first declare the core namespace:
<html ... xmlns:icecore="http://www.icefaces.org/icefaces/core">
Then add the icecore:setEventPhase component to your page markup, as the parent of a UIInput, UICommand, or other component that queues events. You must specify a value for the events and phase properties, or else nothing will happen. In this example, the inputText's ValueChangeEvent will broadcasted during INVOKE_APPLICATION.
<icecore:setEventPhase events="ValueChangeEvent" phase="INVOKE_APPLICATION">
<h:inputText value="#{bean.text}" valueChangeListener="#{bean.textChanged}"/>
</icecore:setEventPhase>
TagLib Documentation
This section covers attributes involved in the typical use-cases for this component. For reference, the complete taglib documentation for this component is available here.