6.1.  < a4j:ajaxListener >

6.1.1. Description

The <a4j:ajaxListener> component is the same one as <f:actionListener> or <f:valueChangeListener> , but for an Ajax container.

Table 6.1. a4j : ajaxListener attributes

Attribute NameDescription
type Fully qualified Java class name of an AjaxListener to be created and registered.

Table 6.2. Component identification parameters

NameValue
listener-classorg.ajax4jsf.framework.ajax.AjaxListener
event-classorg.ajax4jsf.framework.ajax.AjaxEvent
tag-classorg.ajax4jsf.taglib.html.jsp.AjaxListenerTag

6.1.2. Creating on a page

To create the simplest variant on a page use the following syntax:

Example:


...
    <a4j:ajaxListener type="demo.Bean"/>
...

6.1.3. Creating the Component Dynamically Using Java

Example:


package demo;
      
public class ImplBean implements import org.ajax4jsf.component.html.AjaxListener{
    ...
}


import demo.ImplBean;
...
ImplBean myListener = new ImplBean();
...

6.1.4. Key attributes and ways of usage

Additional to the listeners provided by JSF specification, RichFaces add one more: ajax Listener ( <a4j:ajaxListener> ). Ajax Listener is invoked before the Render Response phase. Instead of <f:actionListener> of <f:valueChangeListener> which are not invoked when Validation of Update Model phases failed, ajax Listener is guarantied to be invoked for each Ajax response. Thus, it is a good place for update the list of re-rendered components, for example. Ajax Listener is not invoked for non-Ajax request and when RichFaces works in "Ajax Request generates Non-Ajax Response" mode. Therefore, ajax Listener invocation is a good indicator that Ajax response is going to be processed. Attribute "type" described in the following chapter. It defines the fully qualified Java class name for listener.This class implements org.ajax4jsf.framework.ajax.ajaxListener interface. You can access to the source of the event (Ajax component) using event.getSource() call.

Example:


...
    <a4j:commandLink id="cLink" value="Click it To Send Ajax Request">
        <a4j:ajaxListener type="demo.Bean"/>
    </a4j:commandLink>
...

Example:


package demo;

import org.ajax4jsf.framework.ajax.AjaxEvent;

public class Bean implements org.ajax4jsf.framework.ajax.AjaxListener{
... 
    public void processAjax(AjaxEvent arg0){
        //Custom Developer Code 
    }
...
}

6.1.5. Relevant resources links

Some additional information about usage of component can be found here.

More information about <f:valueChangeListener> can be found here.