【问题标题】:Wicket: AjaxLazyLoadPanel hangs after rendering first panelWicket:AjaxLazyLoadPanel 在渲染第一个面板后挂起
【发布时间】:2010-10-27 16:43:37
【问题描述】:

我正在使用 Wicket AjaxLazyLoadPanel 来呈现项目列表(每个项目都是自己的面板)。当您在新的浏览器会话中导航到页面时,它工作正常除了(启动浏览器,直接转到此页面而不访问应用程序中的任何其他页面)。执行此操作时,它会呈现第一个项目,但永远显示其他 12 个的等待指示符。

这是 Wicket 中的错误吗?我使用的是 1.4.9 版

编辑: 这是 LazyLoadPanel 的使用方式。 getLazyLoadComponent() 只会在您第一次点击页面时被调用一次:

public void populateItem(final Item<ListSearchRow> item) {
  item.add(new AjaxLazyLoadPanel("result") {

    private static final long serialVersionUID = 1L;

    @Override
    public Component getLazyLoadComponent(String markupId) {
      return new ListResult(markupId, item.getModel());
    }  
  });
} 

【问题讨论】:

  • jsessionid 不太可能是问题所在。在您使用 AjaxLazyLoadPanel 的地方发布代码可能会有所帮助。
  • jsessionid 在第一种情况下位于 url 上,因为会话是新的并且 cookie 尚未设置。对于第一个请求,它附加到 url 是正常的,因为服务器不知道客户端是否会接受 cookie。

标签: java ajax wicket


【解决方案1】:

根据以下 cmets 编辑

您是否尝试过使用不同版本的 wicket(-extentions)?这也给我带来了AjaxLazyLoadPanel 的问题:

<dependency>
    <groupId>org.apache.wicket</groupId>
    <artifactId>wicket</artifactId>
    <version>1.4.12</version>
</dependency>
<dependency>
    <groupId>org.apache.wicket</groupId>
    <artifactId>wicket-extensions</artifactId>
    <version>1.4.12</version>
</dependency>

【讨论】:

  • 切换到 1.4.2 没有帮助。那是过去为您解决问题的特定版本吗?我正在使用 Wicket 1.4.9 版
  • 将 wicket 和 wicket-extensions 切换到 1.4.12 解决了这个问题。也许更改您的答案以注意可能需要切换两个版本,以便其他人可以使用该信息。感谢您的帮助!
  • 更新了答案:如果这对您有用,那么答案应该反映了这一点。我在 AjaxLazyLoadPanel 上遇到的问题是微调器在类似情况下不会消失(ALLP 在中继器内)。 . 切换 back 版本号在我的情况下修复了它.. 也许我现在应该尝试使用 1.4.12 版.. 但无论如何:很高兴我能提供帮助!
猜你喜欢
  • 2016-07-12
  • 1970-01-01
  • 2017-02-08
  • 2018-07-02
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-02
相关资源
最近更新 更多