    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:a4j="http://richfaces.org/a4j"
    	xmlns:rich="http://richfaces.ajax4jsf.org/rich">
    	<ui:composition template="/templates/component-sample.xhtml">
    		<ui:define name="sample">
    			<p>
    				Additionally 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 Action Listener of Value Change Listener which are not invoked when
    				Validation of Update Model phases failed, Ajax Listener is guarantied to be invoked
    				for each Ajax response. Hence, it is a good place to update the list of re-rendered
    				components, for example.
    			</p>
    			<p>
    				Ajax Listener is not invoked for a 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.
    			</p>

    			<p>
    				<b>type</b> attribute defines the fully qualified Java class name for listener. This
    				class should implement org.ajax4jsf.events.AjaxListener interface. You can access to
    				the source of the event (Ajax component) using event.getSource() call.
    			</p>

    		</ui:define>

    	</ui:composition>
    </html>