Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在jsf/xhtml中使用foreach_Java_Jsf_Xhtml_Jstl_Seam - Fatal编程技术网

Java 在jsf/xhtml中使用foreach

Java 在jsf/xhtml中使用foreach,java,jsf,xhtml,jstl,seam,Java,Jsf,Xhtml,Jstl,Seam,那么 我数组一个数据表,其中必须有一些动态列。。。。 所以我用的是数据表。。。与上面的代码类似: <rich:dataTable value="#{query.dataModel}" var="inscricao"> <rich:column label="My List"> <f:facet name="header"> <h:outputText valu

那么

我数组一个数据表,其中必须有一些动态列。。。。 所以我用的是数据表。。。与上面的代码类似:

<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>

嗯,我的问题是我的车坏了。“我的列表”列正确显示了列表中的元素数。。。但当我尝试将其迭代到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:repeat,它会在a4j:repeat中识别我的列。否则,如果我移除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>

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

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

要构建动态的列数,您可以使用
c:forEach
(正如您所做的那样),
属性将在构建树上进行求值(例如,
值求值时,
inscricao
变量不可用)。
使用
ui:repeat
将不起作用,因为RichFaces组件(dataTable、tabPanel和其他)无法处理该问题。

输出文本组件的值(
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
(正如您所做的那样),
属性将在构建树上进行求值(例如,
值求值时,
inscricao
变量不可用)。
使用
ui:repeat
将不起作用,因为RichFaces组件(dataTable、tabPanel和其他)无法处理该问题。

好吧,当我将c:set和h:outputText(正如您在c:forEach中所说)放入列中时,它会显示数字“4”。。。所以看起来他已经初始化了..使用c:forEach是在rich:dataTable中拥有动态列的唯一正确方法,使用ui:repeat或a4j:repeat将无法正常工作。使用c:forEach方法,然后调试代码。例如,检查树是如何构建的。调试ForEachHandler类并查看如何计算项,等等(查找以下行:srcVE=this.items.getValueExpression(ctx,Object.class);src=srcVE.getValue(ctx);)好的,当我将c:set和h:outputText如您所说放入c:forEach列中时,它显示了数字“4”。。。所以看起来他已经初始化了..使用c:forEach是在rich:dataTable中拥有动态列的唯一正确方法,使用ui:repeat或a4j:repeat将无法正常工作。使用c:forEach方法,然后调试代码。例如,检查树是如何构建的。调试ForEachHandler类并查看如何计算项,等等(查找以下行:srcVE=this.items.getValueExpression(ctx,Object.class);src=srcVE.getValue(ctx);)为什么要为rich:column指定标签属性?它仅用于拖放extendedDataTable。我假设您使用的是RichFaces 4.0?RichFaces 3.3有一个
就是为了这个目的。它在RF 4.0中确实不再可用,但计划在RF 4.1中使用。所以,我建议:继续关注……已经尝试使用rich:columns,但没有成功。。。使用richface 3.2。并改为3.3。要测试rich:列。。。但在3.2中也“起作用”。为什么要为rich:column指定标签属性?它仅用于拖放extendedDataTable。我假设您使用的是RichFaces 4.0?RichFaces 3.3有一个
就是为了这个目的。它在RF 4.0中确实不再可用,但计划在RF 4.1中使用。所以,我建议:继续关注……已经尝试使用rich:columns,但没有成功。。。使用richface 3.2。并改为3.3。要测试rich:列。。。但在3.2也“起作用”。