带有Primefaces的jsf 2自定义复合组件

时间:2014-01-29 10:24:10

标签: jsf-2 primefaces composite-component

我有一个使用Primefaces的自定义对话框组件:

myDialog.xhtml

<!-- INTERFACE -->
<cc:interface>

    <cc:attribute name="header" />
    <cc:attribute name="id" />

</cc:interface>

<!-- IMPLEMENTATION -->
<cc:implementation>

    <p:dialog  header="#{cc.attrs.header}"
        id="#{cc.attrs.id}" >


    </p:dialog>


</cc:implementation>

我想在myDialog中插入另一个组件,但它不起作用。

example.xhtml

<puc:myDialog  header="Hi" id="myDialogId">
        **This code doesn't appear. Why?**  
        <p:dataGrid>
            <p:row>
                <p:column>
                <p:inputText></p:inputText>
                </p:column>
                </p:row>
        </p:dataGrid>

</puc:myDialog>

1 个答案:

答案 0 :(得分:1)

您缺少cc:insertChildren标记。

<cc:implementation>
 <p:dialog  header="#{cc.attrs.header}" id="#{cc.attrs.id}" >
  <cc:insertChildren />
 </p:dialog>
</cc:implementation>
  

使用页面中复合组件标签内的任何子组件或模板文本都将在此标签在复合组件中的位置指定的位置重新组合到复合组件中:实现部分。