Download
FAQ
History
PrevHomeNext API
Search
Feedback
Divider

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 ActionEvent and Referencing a Method That Handles a ValueChangeEvent.

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 NameChange ValueChangeListener and a hypothetical LocaleChange ActionListener implementation on components. Implementing Value-Change Listeners explains how to implement NameChange. Implementing Action Listeners explains how to implement the hypothetical LocaleChange.

Registering a ValueChangeListener on a Component

A page author can register a ValueChangeListener 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, the component instance represented by this tag will automatically queue the ValueChangeEvent associated with the specified ValueChangeListener to the component.

Registering an ActionListener on a Component

A page author can register an ActionListener 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 the component associated with this tag is activated, the component's decode method (or its associated Renderer) automatically queues the ActionEvent associated with the specified ActionListener to the component.

Divider
Download
FAQ
History
PrevHomeNext API
Search
Feedback
Divider

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.