Class InvokeActionEventListener

  • All Implemented Interfaces:
    FacesListener, PhaseListener, SystemEventListener, Serializable, EventListener

    public class InvokeActionEventListener
    extends DefaultPhaseListener
    implements SystemEventListener

    The InvokeActionEventListener will add support for new <f:event> types preInvokeAction and postInvokeAction. Those events are published during the beforephase and afterphase of INVOKE_APPLICATION respectively. This actually offers a better hook on invoking actions after the <f:viewParam> values been set than the preRenderView event. In some circumstances the preRenderView event might be too late. For example, when you need to set a faces message in the flash scope and send a redirect. Also, it won't be invoked when the validations phase has failed for one of the <f:viewParam> values, in contrary to the preRenderView event.

    Note that the upcoming JSF 2.2 will come with a <f:viewAction> tag which should actually solve the concrete functional requirement for which a <f:event type="preRenderView"> workaround is often been used in JSF 2.0 and 2.1.

    This event is supported on any UIComponent, including UIViewRoot, UIForm, UIInput and UICommand components. This thus also provides the possibility to invoke multiple action listeners on a single UIInput and UICommand component on an easy manner.

    As this phase listener has totally no impact on a webapp's default behavior, this phase listener is already registered by OmniFaces own faces-config.xml and thus gets auto-initialized when the OmniFaces JAR is bundled in a webapp, so endusers do not need to register this phase listener explicitly themselves.

    Since:
    1.1
    Author:
    Bauke Scholtz
    See Also:
    PreInvokeActionEvent, PostInvokeActionEvent, Serialized Form