Download PDF Home History |  | API Search Feedback FAQ

> ## Registering Listeners on Components

> A page author can register a listener implementation class on a component by nesting either a `valuechangeListener` tag or an `actionListener` tag within the component's tag on the page.

> An application developer can instead implement these listeners as backing bean methods. To reference these methods, a page author uses the component tag's `valueChangeListener` and `actionListener` attributes, as described in Referencing a Method That Handles an Action Event and Referencing a Method That Handles a Value-change Event.

> The Duke's Bookstore application includes a `ValueChangeListener` implementation class but does not use an `ActionListener` implementation class. This section explains how to register the `NameChanged` value-change listener and a hypothetical `LocaleChange` action listener implementation on components. Implementing Value-Change Listeners explains how to implement `NameChanged`. Implementing Action Listeners explains how to implement the hypothetical `LocaleChange`.

> ### Registering a Value-Change Listener on a Component

> A page author can register a `ValueChangeListener` implementation on a `UIInput` component or a component represented by one of the subclasses of `UIInput` by nesting a `valueChangeListener` tag within the component's tag on the page. Here is the tag corresponding to the `name` component from the `bookcashier.jsp` page:

>     <h:inputText  id="name" size="50" value="#{cashier.name}"
>       required="true">
>       <f:valueChangeListener type="listeners.NameChanged" />
>     </h:inputText>

> The `type` attribute of the `valueChangeListener` tag specifies the fully qualified class name of the `ValueChangeListener` implementation.

> After this component tag is processed and local values have been validated, its corresponding component instance will queue the `ValueChangeEvent` associated with the specified `ValueChangeListener` to the component.

> ### Registering an Action Listener on a Component

> A page author can register an `ActionListener` implementation on a `UICommand` component by nesting an `actionListener` tag within the component's tag on the page. Duke's Bookstore does not use any `ActionListener` implementations. Here is one of the `commandLink` tags on the `chooselocale.jsp` page, changed to reference an `ActionListener` implementation rather than a backing bean method:

>     <h:commandLink id="NAmerica" action="bookstore">
>        <f:actionListener type="listeners.LocaleChange" />
>     </h:commandLink>

> The `type` attribute of the `actionListener` tag specifies the fully qualified class name of the `ActionListener` implementation.

> When this tag's component is activated, the component's `decode` method (or its associated `Renderer`) automatically queues the `ActionEvent` implementation associated with the specified `ActionListener` implementation onto the component.

Download PDF Home History |  | API Search Feedback FAQ

All of the material in The J2EE(TM) 1.4 Tutorial is copyright-protected and may not be published in other works without express written permission from Sun Microsystems.