The primary JSF component classes implement render-independent behavior and must be combined with a renderer that knows how to represent them in a particular markup language, such as one of the renderers in the standard HTML render kit. Figure C-1 shows all render-independent component classes.
Each component class belongs to a component
family, which identifies the basic nature of a component,
for example, that it’s an output component or a
command component. More than one component class may belong to the
same family, e.g., both the base class and its subclasses, which
specialize the behavior of the base class. All standard component
family names starts with a
followed by descriptive name, e.g.,
javax.faces.Output for the
javax.faces.component.UIOutput class. A component
instance is associated with a renderer type that may be set
programmatically by the developer. The renderer
in general terms how to represent the component, e.g., as a link or a
button. The standard renderer type IDs also have a
javax.faces prefix followed by a descriptive name,
javax.faces.Link for a link renderer.
The specific renderer class to use for a component is determined by the combination of the renderer type it’s configured to use and the family it belongs to. This makes it possible to use the ...