Binding Converters, Listeners, and Validators to Backing Bean Properties

As described previously in this chapter, a page author can bind converter, listener, and validator implementations to backing bean properties using the binding attributes of the tags used to register the implementations on components.

This technique has similar advantages to binding component instances to backing bean properties, as described in Binding Component Values and Instances to External Data Sources. In particular, binding a converter, listener, or validator implementation to a backing bean property yields the following benefits:

Whether you are binding a converter, listener, or validator to a backing bean property, the process is the same for any of the implementations:

For example, say that you want to bind the standard DateTime converter to a backing bean property because the application developer wants the backing bean to set the formatting pattern of the user's input rather than let the page author do it. First, the page author registers the converter onto the component by nesting the convertDateTime tag within the component tag. Then, the page author references the property with the binding attribute of the convertDateTime tag:

<h:inputText value="#{LoginBean.birthDate}">
  <f:convertDateTime binding="#{LoginBean.convertDate}" />

The convertDate property would look something like this:

private DateTimeConverter convertDate; 
public DateTimeConverter getConvertDate() {
  return convertDate;
public void setConvertDate(DateTimeConverter convertDate) {
  convertDate.setPattern("EEEEEEEE, MMM dd, yyyy");
  this.convertDate = convertDate;

See Writing Properties Bound to Converters, Listeners, or Validators (page 389) for more information on writing backing bean properties for converter, listener, and validator implementations.