Jsf c:forEach内部基本面(例如p:panelgrid)内部ui:重复
我必须亲自制作一份表格清单。其中每一个都有固定行的可变列数 为了执行此操作,我首先将a放入an:中,因此我正确地生成了一个表列表 然后,为了直观地生成这些列,我尝试将a或a都放在列中。结果我没有得到任何行 我在这里写了一个简单的例子。在bean testBackingBean中,我定义并初始化了变量ArrayList表。这是无法产生预期结果的xhtml:Jsf c:forEach内部基本面(例如p:panelgrid)内部ui:重复,jsf,jsf-2,primefaces,panelgrid,Jsf,Jsf 2,Primefaces,Panelgrid,我必须亲自制作一份表格清单。其中每一个都有固定行的可变列数 为了执行此操作,我首先将a放入an:中,因此我正确地生成了一个表列表 然后,为了直观地生成这些列,我尝试将a或a都放在列中。结果我没有得到任何行 我在这里写了一个简单的例子。在bean testBackingBean中,我定义并初始化了变量ArrayList表。这是无法产生预期结果的xhtml: <ui:repeat var="table" value="#{testBackingBean.tables}"> <
<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实例树中转换,如FacesContextgetViewRoot所示 然后,在视图呈现期间,JSF UI组件树生成HTML输出并将其写入HTTP resopnse,从UIViewRootencodeAll方法开始 与所有JSTL标记一样,几个JSF标记和只有几个Facelets标记在视图构建期间运行。与所有JSF标记一样,几个Facelets标记和只有几个JSF标记在视图渲染期间运行 和 换句话说,内部声明的UI组件在JSF组件树中基于视图构建期间多次重新创建,然后在视图呈现期间分别生成各自的HTML输出。在视图构建期间,内部声明的UI组件在JSF组件树中只创建一次,而在视图呈现期间,JSF组件树又会根据生成的HTML输出重复使用多次 您的具体问题是由以下事实引起的:仅在视图渲染时可用,而在视图生成时不可用。基本上,当它将要在视图构建期间运行时,将{null}作为值检索 您可以通过将外部替换为来解决此问题。虽然我想知道你是否能更好地使用它 另见:
谢谢你的快速回复。我将尝试使用动态列。顺便说一句,如果我使用两个c:forEach,那么就不会生成panelGroups。不幸的是,我的数据结构是一个bean数组,每个bean都有一些属性。感谢您的解释:
<c:forEach items="${testBackingBean.tables}" var="tabella">
current element: #{tabella}
</c:forEach>