【问题标题】:c:foreach inside h:datatable to show two dimensional arrayc:foreach 在 h:datatable 内显示二维数组
【发布时间】:2014-01-08 10:39:44
【问题描述】:

我正在尝试使用 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>

你能帮我完成它吗?或者您可以建议一些更好的解决方案来显示数组?谢谢

【问题讨论】:

    标签: arrays jsf jakarta-ee foreach datatable


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 2012-08-15
      • 1970-01-01
      相关资源
      最近更新 更多