Download PDF Home History |  | API Search Feedback FAQ

> ## Registering a Custom Component

> In addition to registering custom renderers (as explained in the preceding section), you also must register the custom components that are usually associated with the custom renderers.

> Here is the `component` element from the application configuration resource file that registers `AreaComponent`:

>     <component>
>       <component-type>DemoArea</component-type>
>       <component-class>
>         components.AreaComponent
>       </component-class>
>       <property>
>         <property-name>alt</property-name>
>         <property-class>java.lang.String</property-class>
>       </property>
>       <property>
>         <property-name>coords</property-name>
>         <property-class>java.lang.String</property-class>
>       </property>
>       <property>
>         <property-name>shape</property-name>
>         <property-class>java.lang.String</property-class>
>       </property>

>       <component-extension>
>         <component-family>Area</component-family>
>         <renderer-type>DemoArea</renderer-type>
>       </component-extension>

>     </component>

> The `component-type` element indicates the name under which the component should be registered. Other objects referring to this component use this name. For example, the `component-type` element in the configuration for `AreaComponent` defines a value of `DemoArea`, which matches the value returned by the `AreaTag` class's `getComponentType` method.

> The `component-class` element indicates the fully qualified class name of the component. The `property` elements specify the component properties and their types.

> If the custom component can include facets, you can configure the facets in the component configuration using `facet` elements, which are allowed after the `component-class` elements. See Registering a Custom Renderer with a Render Kit for further details on configuring facets.

> The `component-extension` element identifies a component family and a renderer type. The component family represents a component or set of components that a renderer can render. The renderer type specifies the renderer that can render the components included in the component family.

> The component family specified by the `component-family` element must match that returned by the components' `getFamily` methods. The `renderer-type` must match that returned by the tag handler's `getRendererType` method. By using the component family and renderer type to look up renderers for components, the JavaServer Faces implementation allows a component to be rendered by multiple renderers and allows a renderer to render multiple components.

Download PDF Home History |  | API Search Feedback FAQ

All of the material in The J2EE(TM) 1.4 Tutorial is copyright-protected and may not be published in other works without express written permission from Sun Microsystems.