Class Renderer<T extends UIComponent>

java.lang.Object
jakarta.faces.render.Renderer<T>
Type Parameters:
T - The component class.
Direct Known Subclasses:
CompositeFacetRenderer, CompositeRenderer, DoctypeRenderer, HtmlBasicRenderer, RendererWrapper, RepeatRenderer, ScriptStyleBaseRenderer

public abstract class Renderer<T extends UIComponent> extends Object

A Renderer converts the internal representation of UIComponents into the output stream (or writer) associated with the response we are creating for a particular request. Each Renderer knows how to render one or more UIComponent types (or classes), and advertises a set of render-dependent attributes that it recognizes for each supported UIComponent.

Families of Renderers are packaged as a RenderKit, and together support the rendering of all of the UIComponents in a view associated with a FacesContext. Within the set of Renderers for a particular RenderKit, each must be uniquely identified by the rendererType property.

Individual Renderer instances will be instantiated as requested during the rendering process, and will remain in existence for the remainder of the lifetime of a web application. Because each instance may be invoked from more than one request processing thread simultaneously, they MUST be programmed in a thread-safe manner.

If the ListenerFor annotation is attached to the class definition of a Renderer, that class must also implement ComponentSystemEventListener, and the action pertaining to the processing of ResourceDependency on a Renderer described in ListenerFor must be taken.

If the ResourceDependency annotation is attached to the class definition of a Renderer, the action pertaining to the processing of ResourceDependency on a Renderer described in UIComponent.getChildren() must be taken.

The generic parameter T represents the component class.