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

Mih*_*hai 1 datatable jsf jsf-2

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

Bal*_*usC 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>
Run Code Online (Sandbox Code Playgroud)