【发布时间】:2013-09-12 08:56:35
【问题描述】:
我有一种情况,我有一个 p:imageSwitch 和一个 ui:repeat 来显示一些图像和一些图像数据。
它们被放置在这样的 p:panel 中:
<p:imageSwitch id="mediaSwitcher" effect="fade" widgetVar="switcher" slideshowAuto="false">
<ui:repeat value="#{mediaListBean.items}" var="item">
SHOW IMAGE
SHOW IMAGE DATA
</ui:repeat>
</p:imageSwitch>
问题是有时,不是所有时候,即使项目列表中应该有图像,图像切换器也不会显示任何图像。
当这种情况发生时,一个简单的 F5 就足以让它正确显示。
所以我的想法是前端不会等待后端从后端获取所有数据,而是认为它是空的并且没有显示列表。然后第二次数据已经在我的bean中了,可以直接加载了。
有没有好办法让前端等待服务器?我试图在页面加载后对图像切换器进行更新,但这无济于事:(
【问题讨论】:
-
你试过用
代替 ui-repeat 吗?我以前没有使用过 imageSwitch 组件,但似乎它可能与组件使用的 JSF 生命周期的不同阶段有关。欲了解更多信息,我真的很喜欢这篇关于此事的文章:balusc.blogspot.be/2006/09/debug-jsf-lifecycle.html -
据我所知,您永远不应该在 JSF 中使用 c:forEach。我认为它不能很好地处理 JSF 生命周期。
-
我不久前也得出了同样的结论。但我想指出它的完整性......很高兴你解决了你的问题顺便说一句。
标签: jsf primefaces facelets