0

我在 a 中使用不同类的对象,<p:dataTable>并希望有条件地<p:column>为不同的类渲染多个对象。我不想使用<p:columns>,因为我必须提供关于应该主要从 bean 呈现哪些列的数据,而我只想在 Facelets 中进行。

实际上我可以像下面显示的那样做,但是对于许多具有不同属性的不同类,这会变得混乱。我希望在某个条件下呈现的所有列都包含在另一个文件中。

<p:dataTable value="#{myBean.object} var="object">
    <p:column rendered="#{myBean.classOfObject == 'Car'}" />
        #{object.yearOfConstruction}
    </p:column>
    <p:column rendered="#{myBean.classOfObject == 'Person'}">
        #{object.dateOfBirth}
    </p:column>
</p:dataTable>
4

1 回答 1

0

我仍然对以下方法以及新方法的建议持开放态度:

数据表.xhtml

<c:set var="isCar" value="#{param.type == 'Car'}" />
<p:dataTable value="#{myBean.object} var="object">
    <ui:include src="car.xhtml"/>
</p:dataTable>

汽车.xhtml

<p:column rendered="#{isCar}" />
    #{object.yearOfConstruction}
</p:column>
<p:column rendered="#{isCar}" />
    #{object.color}
</p:column>

我仍然对重复条件不满意rendered

于 2013-10-28T20:49:51.860 回答