Class Renderer<T extends UIComponent>
- java.lang.Object
-
- jakarta.faces.render.Renderer<T>
-
- Type Parameters:
T- The component class.
- Direct Known Subclasses:
RendererWrapper
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. EachRendererknows how to render one or moreUIComponenttypes (or classes), and advertises a set of render-dependent attributes that it recognizes for each supportedUIComponent.Families of
Renderers are packaged as aRenderKit, and together support the rendering of all of theUIComponents in a view associated with aFacesContext. Within the set ofRenderers for a particularRenderKit, each must be uniquely identified by therendererTypeproperty.Individual
Rendererinstances 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
ListenerForannotation is attached to the class definition of aRenderer, that class must also implementComponentSystemEventListener, and the action pertaining to the processing ofResourceDependencyon aRendererdescribed inListenerFormust be taken.If the
ResourceDependencyannotation is attached to the class definition of aRenderer, the action pertaining to the processing ofResourceDependencyon aRendererdescribed inUIComponent.getChildren()must be taken.The generic parameter T represents the component class.
-
-
Field Summary
Fields Modifier and Type Field Description static StringPASSTHROUGH_RENDERER_LOCALNAME_KEYThe key in the component passthrough attributesMapfor the localName of the element corresponding to the component.
-
Constructor Summary
Constructors Constructor Description Renderer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringconvertClientId(FacesContext context, String clientId)Convert the component generated client id to a form suitable for transmission to the client.voiddecode(FacesContext context, T component)Decode any new state of the specifiedUIComponentfrom the request contained in the specifiedFacesContext, and store that state on theUIComponent.voidencodeBegin(FacesContext context, T component)Render the beginning specifiedUIComponentto the output stream or writer associated with the response we are creating.voidencodeChildren(FacesContext context, T component)Render the child components of thisUIComponent, following the rules described forencodeBegin()to acquire the appropriate value to be rendered.voidencodeEnd(FacesContext context, T component)Render the ending of the current state of the specifiedUIComponent, following the rules described forencodeBegin()to acquire the appropriate value to be rendered.ObjectgetConvertedValue(FacesContext context, UIComponent component, Object submittedValue)Attempt to convert previously stored state information into an object of the type required for this component (optionally using the registeredConverterfor this component, if there is one).booleangetRendersChildren()Return a flag indicating whether thisRendereris responsible for rendering the children the component it is asked to render.
-
-
-
Field Detail
-
PASSTHROUGH_RENDERER_LOCALNAME_KEY
public static final String PASSTHROUGH_RENDERER_LOCALNAME_KEY
The key in the component passthrough attributes
Mapfor the localName of the element corresponding to the component.- Since:
- 2.2
- See Also:
- Constant Field Values
-
-
Method Detail
-
decode
public void decode(FacesContext context, T component)
Decode any new state of the specified
UIComponentfrom the request contained in the specifiedFacesContext, and store that state on theUIComponent.During decoding, events may be enqueued for later processing (by event listeners that have registered an interest), by calling
queueEvent()on the associatedUIComponent.- Parameters:
context-FacesContextfor the request we are processingcomponent-UIComponentto be decoded.- Throws:
NullPointerException- ifcontextorcomponentisnull
-
encodeBegin
public void encodeBegin(FacesContext context, T component) throws IOException
Render the beginning specified
UIComponentto the output stream or writer associated with the response we are creating. If the conversion attempted in a previous call togetConvertedValue()for this component failed, the state information saved during execution ofdecode()should be used to reproduce the incorrect input.- Parameters:
context-FacesContextfor the request we are processingcomponent-UIComponentto be rendered- Throws:
IOException- if an input/output error occurs while renderingNullPointerException- ifcontextorcomponentis null
-
encodeChildren
public void encodeChildren(FacesContext context, T component) throws IOException
Render the child components of this
UIComponent, following the rules described forencodeBegin()to acquire the appropriate value to be rendered. This method will only be called if therendersChildrenproperty of this component istrue.- Parameters:
context-FacesContextfor the response we are creatingcomponent-UIComponentwhose children are to be rendered- Throws:
IOException- if an input/output error occurs while renderingNullPointerException- ifcontextorcomponentisnull
-
encodeEnd
public void encodeEnd(FacesContext context, T component) throws IOException
Render the ending of the current state of the specified
UIComponent, following the rules described forencodeBegin()to acquire the appropriate value to be rendered.- Parameters:
context-FacesContextfor the response we are creatingcomponent-UIComponentto be rendered- Throws:
IOException- if an input/output error occurs while renderingNullPointerException- ifcontextorcomponentisnull
-
convertClientId
public String convertClientId(FacesContext context, String clientId)
Convert the component generated client id to a form suitable for transmission to the client.
The default implementation returns the argument
clientIdunchanged.- Parameters:
context-FacesContextfor the current requestclientId- the client identifier to be converted to client a specific format.- Returns:
- the converted
clientId - Throws:
NullPointerException- ifcontextorclientIdisnull
-
getRendersChildren
public boolean getRendersChildren()
Return a flag indicating whether this
Rendereris responsible for rendering the children the component it is asked to render. The default implementation returnsfalse.- Returns:
- the current value of the flag
-
getConvertedValue
public Object getConvertedValue(FacesContext context, UIComponent component, Object submittedValue) throws ConverterException
Attempt to convert previously stored state information into an object of the type required for this component (optionally using the registered
Converterfor this component, if there is one). If conversion is successful, the new value should be returned from this method; if not, aConverterExceptionshould be thrown.- Parameters:
context-FacesContextfor the request we are processingcomponent-UIComponentto be decoded.submittedValue- a value stored on the component duringdecode.- Returns:
- the converted value
- Throws:
ConverterException- if the submitted value cannot be converted successfully.NullPointerException- ifcontextorcomponentisnull
-
-