将foreach用于jsf / xhtml

问题描述 投票:1回答:1

好,

我数组一个dataTable,我必须有一些动态列....所以我使用dataTable ...像上面的代码:

<rich:dataTable value="#{query.dataModel}" var="inscricao">
            <rich:column label="My List">
                <f:facet name="header">
                    <h:outputText value="My List" />
                </f:facet>
                <h:outputText value="#{query.presencas.size()}" />
            </rich:column>

                        <c:forEach var="presenca" items="${query.presencas}">
                            <rich:column label="Presença">
                <f:facet name="header">
                        <h:outputText value="Presença" />
                </f:facet>
                <h:outputText value="testing" />
                </rich:column>
                        </c:forEach>
</rich:dataTable>

好吧,我的问题是我的foreach无法正常工作。 “我的列表”列显示了列表中我正确拥有的元素数量...但是当我尝试将其迭代到c:forEach时它不起作用...

我已经尝试过使用:

的xmlns:C = “http://java.sun.com/jstl/core”

而另一个:

的xmlns:C = “http://java.sun.com/jsp/jstl/core”

但没有成功......也尝试使用ui:重复这样:

<ui:repeat value="#{query.presencas}" var="presenca">
    <f:facet name="header">
        <h:outputText value="#{presenca.id}" />
    </f:facet>
</ui:repeat>

但也没有奏效。

有人知道可能是什么问题或其他迭代列表的方式?

我看到如果我使用a4j:重复INTO一列,它会识别我在a4j内的列:重复。否则,如果我删除a4j之外的列:重复它不起作用...

<rich:column label="Presenças" title="teste"  >
    <a4j:repeat value="#{query.presencas}" var="presenca">
         <rich:column label="Presenças" title="teste"  >
        <f:facet name="header">
            <h:outputText value="Presença" />
        </f:facet>
        <h:selectBooleanCheckbox value="#{inscricao.credenciamento}" />
         </rich:column>
    </a4j:repeat>
</rich:column>
java jsf xhtml jstl seam
1个回答
0
投票

在渲染响应阶段评估输出文本组件(value="#{query.presencas.size()}")的值。在构建树上评估forEach标记处理程序(items="${query.presencas}")的值。您在EL中使用不同的符号来区分($和#)。似乎query.presencas没有在构建树上初始化。您可以检查构建树上的评估计数:

<c:set var="count" value="${query.presencas.size()}"/>
<h:outputText value="#{count}"/>

要构建动态数量的列,您可以使用c:forEach(就像您一样),将在构建树上评估items属性(例如,当评估inscricao值时,items var不可用)。使用ui:repeat它将无法工作,因为RichFaces组件(dataTable,tabPanel和其他)不能处理它。

© www.soinside.com 2019 - 2024. All rights reserved.