Osw*_*Osw 3 jsf composite-component jsf-2
我正在尝试扩展JSF的组件类(让它成为其中之一h:panelGroup)并通过复合组件呈现它:
步骤1:
@FacesComponent(value="customPanel")
public class CustomPanel extends HtmlPanelGroup { // or UIPanel
}
Run Code Online (Sandbox Code Playgroud)
第2步:
<!-- INTERFACE -->
<composite:interface componentType="customPanel"/>
<!-- IMPLEMENTATION -->
<composite:implementation>
<h:outputText value="Some text:"/>
<composite:insertChildren/>
</composite:implementation>
Run Code Online (Sandbox Code Playgroud)
第3步:
<xyz:panel>Hello world!</xyz:panel>
Run Code Online (Sandbox Code Playgroud)
没有显示.我在这里错过了什么?
复合组件的后备组件必须实现NamingContainer并且getFamily()必须返回javax.faces.NamingContainer.另请参阅标记文档中的componentType属性<composite:interface>说明.
@FacesComponent(value="customPanel")
public class CustomPanel extends HtmlPanelGroup implements NamingContainer {
@Override
public String getFamily() {
return UINamingContainer.COMPONENT_FAMILY;
}
}
Run Code Online (Sandbox Code Playgroud)
您也可以选择扩展UINamingContainer,以便省略getFamily().
| 归档时间: |
|
| 查看次数: |
5687 次 |
| 最近记录: |