根据列名列表在h:dataTable中创建h:列组件

时间:2013-09-17 12:08:24

标签: jsf jsf-2 datatable

我正在尝试使用两个列表创建<h:dataTable>。一个列表包含列名,另一个列表包含将填充表的数据。我需要包含列名的列表,因为第二个中的数据具有的属性多于我想要显示的属性。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:5)

是的,如果您使用<c:forEach>来迭代列名并生成<h:column>所需的<h:dataTable>组件,则可以。您可以在EL中使用括号表示法[]将列名称用作“动态”bean属性名称(或甚至作为Map键)。

<h:dataTable value="#{bean.rows}" var="row">
    <c:forEach items="#{bean.columnNames}" var="columnName">
        <h:column>#{row[columnName]}</h:column>
    </c:forEach>
</h:dataTable>