我正在尝试使用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>
但是如果我尝试使用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>
你能帮助我让它发挥作用吗?或者你可以建议一些更好的解决方案来显示数组?谢谢
答案 0 :(得分:2)
在假设c:forEach在处理dataTable的迭代的同时被处理时,做了很常见的错误。 c:forEach在构建JSF树中处理一次,在此阶段没有定义“dt”变量。 h:dataTable在JSF恢复/渲染阶段定义“dt”变量。如果需要在这个阶段进行迭代,请使用ui:repeat而不是c:forEach。