【问题标题】:Primefaces, ImageSwitch and ui:repeat renders to soon, no data availablePrimefaces、ImageSwitch 和 ui:repeat 很快就会渲染,没有可用数据
【发布时间】: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


【解决方案1】:

所以我想通了。问题实际上出在数据库中。我做了一个插入,其中有一列具有第二精度的“validFrom”。当我插入一些东西并试图在同一秒查看它时,它不会出现。所以我所要做的就是在我的 sql 查询中添加一个 >= 而不仅仅是 >。

真是我犯的愚蠢错误。

【讨论】:

    猜你喜欢
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 2014-02-10
    相关资源
    最近更新 更多