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

What is the best way to use composite components for columns of data table?

我有两个内部包含 <h:dataTable> 的复合组件,它们仅在少数几个内容上有所不同 <h:column> 避免使用复合组件进行复制粘贴的最佳方法是什么?我知道标签,但我的项目中没有任何标签。所以,这对我来说不是解决方案。

向复合组件添加属性:

<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"/>