Arrays c:foreach在h:datatable中显示二维数组

Arrays c:foreach在h:datatable中显示二维数组,arrays,jsf,jakarta-ee,foreach,datatable,Arrays,Jsf,Jakarta Ee,Foreach,Datatable,我试图使用h:datatable标记来显示二维int数组的值。但我做不到。你能帮我解决吗 因此,我的支持bean是: public class MC { ........... public int[][] getAr() { return ar; } public int getColCount(){ return ar[0].length; } } 我可以在引用数组大小的foreach标记中显示带有代码的数组: <h:dataTable value="#{mC.a

我试图使用h:datatable标记来显示二维int数组的值。但我做不到。你能帮我解决吗

因此,我的支持bean是:

public class MC {
...........

public int[][] getAr() {
    return ar;
}

public int getColCount(){
    return ar[0].length;
}
}
我可以在引用数组大小的foreach标记中显示带有代码的数组:

<h:dataTable value="#{mC.ar}" var="dt">
<c:forEach var="fe" begin="0" end="#{mC.colCount-1}">
    <h:column>
        <f:facet name="header">X</f:facet>
            #{dt[fe]}
    </h:column>
</c:forEach> 
</h:dataTable>

X
#{dt[fe]}
但如果我尝试使用dataTable中的变量,则不会打印任何内容:

 <h:dataTable value="#{mC.ar}" var="dt">
 <c:forEach var="fe" items="#{dt}">
    <h:column>
        <f:facet name="header">XX</f:facet>
            #{fe}
    </h:column>
</c:forEach> 
</h:dataTable>

XX
#{fe}

你能帮我把它弄好吗?或者您可以建议一些更好的解决方案来显示阵列?谢谢

假设c:forEach在处理dataTable迭代的同时被处理,这是一个非常常见的错误。c:forEach在构建JSF树中处理一次,在这个阶段没有定义“dt”变量。h:dataTable在JSF恢复/呈现阶段定义“dt”变量。如果需要在此阶段进行迭代,请使用ui:repeat而不是c:forEach