gpt4 book ai didi

java - 为什么 p :panelGrid not work with ui:repeat?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:59:32 25 4
gpt4 key购买 nike

如果我按如下方式使用,则不会出现错误,也不会输出。为什么 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>

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

带有素面的预期输出

enter image description here

最佳答案

ui:repeat 将不起作用,因为它实际上并没有将组件添加到组件树。

ui:repeat 仅在渲染阶段起作用,并以不同的状态多次重新渲染其子组件。

一些组件,例如panelgrid,还有datatable,希望组件树中有特定的子组件才能正常工作。由于 ui:repeat 没有添加这些,所以这种方法不起作用。

很抱歉,但通常的解决方案是使用 c:foreach,它确实将 child 添加到树中。

参见 https://rogerkeays.com/jsf-c-foreach-vs-ui-repeat

关于java - 为什么 p :panelGrid not work with ui:repeat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12972576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com