Zaw*_* oo 6 java jsf primefaces
如果我使用如下,我没有错误,没有输出.为什么p:panelGrid不用ui:repeat?
注意:我不想使用c:forEach因为我已经面临很多JSF问题.
<p:panelGrid>
<ui:repeat value="#{MyBean.dataList}" var="data">
<p:row>
<p:column>
<h:outputText value="#{data.name}"/>
</p:column>
<p:column>
<h:outputText value="#{data.description}"/>
</p:column>
</p:row>
</ui:repeat>
</p:panelGrid>
Run Code Online (Sandbox Code Playgroud)
MyBean.java
public List<Data> getDataList(){
List<Data> result = new ArrayList<Data>();
result.add(new Data("Name 1", "Description 1"));
result.add(new Data("Name 2", "Description 2"));
result.add(new Data("Name 3", "Description 3"));
result.add(new Data("Name 4", "Description 4"));
return result;
}
Run Code Online (Sandbox Code Playgroud)
带有primefaces的预期输出

Joe*_*ckx 10
ui:repeat 将无法工作,因为它实际上没有将组件添加到组件树.
ui:repeat 仅在呈现阶段工作,并以不同的状态多次重新呈现其子组件.
某些组件,例如panelgrid,但也datatable希望组件树中有某些子组件才能正常工作.由于ui:repeat不添加这些,这种方法不起作用.
我很抱歉,但对于这个正常的解决方案是使用c:foreach,这不孩子添加到树.
见http://www.ninthavenue.com.au/blog/c:foreach-vs-ui:repeat-in-facelets