This chapter has been leading us gently through the JavaServer Faces technology. More importantly, in it, Budi teaches ushow to write an online survey application to get a feel for how this great technology works. This chapter prepares you for the next chapters by introducing the JSF Application Programming Interface (API) and the Application Configuration file. This excerpt comes from chapter two of JavaServer Faces Programming, by Budi Kurniawan (McGraw-Hill/Osborne, ISBN 0-07-222983-7, 2004).
The javax.faces.convert Package Data conversion happens naturally during the request processing lifecycle. User input, always in String form, is converted into corresponding formats such as numeric and date formats. The javax.faces.convert package contains one interface (Converter) and one Exception class (ConverterException). You use the Converter interface if you want to write a custom converter, and the ConverterException is thrown for each failed data conversion. Converters are discussed in detail in Chapter 10.
The javax.faces.el Package The javax.faces.el package contains classes that are useful in evaluating and processing expressions encountered in JSP pages in a JSF application. The el stands for expression language. One of the classes you may want to get familiar with is ValueBinding. This class is used for accessing the property represented by an action or value reference expression.
The javax.faces.event Package The javax.faces.event package contains classes and interfaces useful for event processing. The FacesEvent class, for example, extends the java.util.EventObject class and is the base class for any event that can be emitted in a JSF application. This class has two subclasses that are also members of the javax.faces.event package: ActionEvent and ValueChangedEvent. These are the only events that can be fired in a JSF application. ActionEvent represents the activation of a UI component, such as the clicking of a button. ValueChangedEvent is trigged when the local value of a component has been changed.
The javax.faces.event package also provides three interfaces: FacesListener, ActionListener, and ValueChangedListener. The FacesListener interface is the base interface that must be implemented by any event listener in JSF. The FacesListener interface is also the superinterface of the ActionListener and ValueChangedListener. You implement the ActionListener interface to write a listener that can receive ActionEvents. Implement the ValueChangedListener interface if you want to receive ValueChangedEvents.
Another member of the javax.faces.event package is the PhaseId class. This class encapsulates type-safe enumeration of possible values used to indicate after which phase in the request processing lifecycle an event listener will be executed. The FacesListener interface has the getPhaseId method, which returns a PhaseId. The request processing lifecycle calls the getPhaseId method of all registered listeners to find out when to execute the listener. If a listenerís getPhaseId returns PhaseId.APPLY_REQUEST_VALUES, for example, the listener will be executed in the process event step after the Apply Request Values phase.
The AbortProcessingException class in the javax.faces.event package may be thrown by event listeners to terminate the processing of the current event.
Remember: This is part three of the second chapter of JavaServer Faces Programming, by Budi Kurniawan (McGraw-Hill/Osborne, ISBN 0-07-222983). If you've enjoyed what you've seen here, click on the "Buy it now!" banner to pick up a copy today! Buy this book!