I’m trying to extend JSF’s component class (let it be one of h:panelGroup) and render it via composite component:
Step 1:
@FacesComponent(value="customPanel")
public class CustomPanel extends HtmlPanelGroup { // or UIPanel
}
Step 2:
<!-- INTERFACE -->
<composite:interface componentType="customPanel"/>
<!-- IMPLEMENTATION -->
<composite:implementation>
<h:outputText value="Some text:"/>
<composite:insertChildren/>
</composite:implementation>
And step 3:
<xyz:panel>Hello world!</xyz:panel>
shows nothing. What am I missing here?
The backing component of the composite component must implement
NamingContainerand thegetFamily()must returnjavax.faces.NamingContainer. See also description of thecomponentTypeattribute in the<composite:interface>tag documentation.You can also choose to extend
UINamingContainerinstead, so that you can omit thegetFamily().See also: