Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Jsf c:forEach内部基本面(例如p:panelgrid)内部ui:重复_Jsf_Jsf 2_Primefaces_Panelgrid - Fatal编程技术网

Jsf c:forEach内部基本面(例如p:panelgrid)内部ui:重复

Jsf c:forEach内部基本面(例如p:panelgrid)内部ui:重复,jsf,jsf-2,primefaces,panelgrid,Jsf,Jsf 2,Primefaces,Panelgrid,我必须亲自制作一份表格清单。其中每一个都有可变数量的列(具有固定行) 要执行此操作,我首先将放在中:因此我正确地生成了一个表列表 然后,为了直观地生成列,我尝试将或放在中。结果我没有得到任何行 我在这里写了一个简单的例子。在beantestBackingBean中,我定义(并初始化)了变量ArrayList tables。这是无法产生预期结果的xhtml: <ui:repeat var="table" value="#{testBackingBean.tables}"> &l

我必须亲自制作一份表格清单。其中每一个都有可变数量的列(具有固定行)

要执行此操作,我首先将
放在
中:因此我正确地生成了一个表列表

然后,为了直观地生成列,我尝试将
放在
中。结果我没有得到任何行

我在这里写了一个简单的例子。在bean
testBackingBean
中,我定义(并初始化)了变量
ArrayList tables
。这是无法产生预期结果的xhtml:

<ui:repeat var="table" value="#{testBackingBean.tables}">
    <p:panelGrid>
        <f:facet name="header">
            <p:row>
                <p:column >header of #{table}</p:column>
            </p:row>
        </f:facet>
        <p:row>
            <c:forEach var="row" items="${table}">
                <p:column>#{row}</p:column>
            </c:forEach>
        </p:row>
    </p:panelGrid>
</ui:repeat>

然后我得到一个空的结果。(我知道,这是一个不同的问题)

从XHTML源代码到生成的HTML输出的转换是一个两步过程

  • 首先,在视图构建期间,XHTML源代码被解析并在代表JSF UI组件树的Java
    UIComponent
    实例树中转换,如
    FacesContext#getViewRoot()
    所示

  • 然后,在视图呈现期间,JSF UI组件树生成HTML输出并将其写入HTTP resopnse,从
    UIViewRoot\encodeAll()方法开始

  • 与所有JSTL
    标记一样,几个JSF
    标记和只有少数Facelets
    标记在视图构建期间运行。与所有JSF
    标记一样,几个Facelet
    标记和少数JSF
    标记在视图渲染期间运行

    换句话说,在视图构建期间,在JSF组件树中基于
    多次重新创建
    中声明的UI组件,然后在视图呈现期间分别生成各自的HTML输出。
    中声明的UI组件在视图构建期间仅在JSF组件树中创建一次,然后根据
    重用多次,以在视图呈现期间生成HTML输出

    具体问题的原因是,
    仅在视图渲染时可用,而不是在视图生成时可用。
    基本上是在视图构建期间将要运行的
    {null}
    检索为值

    您可以通过将外部
    替换为
    来解决此问题。尽管我想知道你是否能更好地使用

    另见:

    感谢您的快速回复。我将尝试使用动态列。顺便说一句,如果我使用两个
    c:forEach
    ,那么就不会生成
    面板组。不幸的是,我的数据结构是一个bean数组,每个bean都有一些属性。感谢您的解释:)
    
    <c:forEach  items="${testBackingBean.tables}" var="tabella">
        current element: #{tabella}
    </c:forEach>