将复合组件用于数据表列的最佳方法是什么?

时间:2015-03-18 08:24:00

标签: jsf composite-component

我有两个内部有<h:dataTable>的复合组件,它们的区别仅在于几个<h:column>的内容。复制粘贴的最佳方法是什么?复合组件的可能性是什么?我知道标签,但我的项目中没有任何标签。所以,它对我来说不是解决方案。

1 个答案:

答案 0 :(得分:1)

向复合组件添加属性:

<cc:interface>
    <cc:attribute name="columnType" type="java.lang.String" required="true" />
</cc:interface>

然后在实施中

 <h:column rendered="#{cc.attrs.columnType eq 'typeAColumns'>
     #{data.valueForColumnTypeA}
 </h:column>
 <h:column rendered="#{cc.attrs.columnType eq 'typeBColumns'>
     #{data.valueForColumnTypeB}
 </h:column>

然后您可以像

一样使用它
 <my:compositeTable columnType="typeAColumns"/>
 <my:compositeTable columnType="typeBColumns"/>