Creating JSF Components

Example 6-1 shows a JSP page with JSF action elements representing a combination of component types and renderer types. When the page is processed, the tag handlers create and configure the component objects. That’s all you really need to know to use JSF, but if you’re a programmer, you’re probably saying, “Okay, that’s cool, but how are the components really created?” Let’s take a look, but be aware that you don’t need to worry about these details unless you’re creating your own custom components, and in that case, you should read Chapter 13 and Chapter 14 to get the whole story. The intention here is only to give you an idea about how the JSF custom actions use the JSF API to make things happen. If you don’t care about these details, you can safely skip the next two sections.

When the JSP container processes a page, it sends all template text to the browser as is, but when it encounters a custom action element it invokes the corresponding tag handler. All JSF tag handlers use the JSF API to create components and associate them with renderers the first time the user requests the page. For instance, the <h:inputText> tag handler contains code similar to this:

import javax.faces.application.Application; import javax.faces.context.FacesContext; import javax.faces.component.UIComponent; import javax.faces.component.UIInput; import javax.faces.webapp.UIComponentTag; ... public class InputTextTag extends UIComponentTag { public int doStartTag( ) { FacesContext ...

Get JavaServer Faces now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.