Wicket:PleaseWaitBehavior-正在显示,"Loading X of Y"

Wicket:PleaseWaitBehavior-Showing, "Loading X of Y"

我试图显示一条加载消息,告诉用户在点击提交后他们在加载过程中进行了多长时间。问题是,加载栏出现了,但它显示 "Loading 0 of 0",直到进程完成。

 private AjaxButton createSubmit() {
        Submit = new AjaxButton("Submit",new Model<String>()) {
            private static final long serialVersionUID = 202575339939441557L;

        @Override
          public void onSubmit(final AjaxRequestTarget target,
              final Form<?> form) {
            handleSubmit(target);
          }
        };
        Submit.setOutputMarkupId(true);
        Submit.add(new PleaseWaitBehavior(new Model<String>(
            "Processing Message " +  loadingNumber + " of " + size)));
        return Submit;
      }

这是处理提交行为的 class。我在 handleSubmit(target) 方法中将两个数字从 0 更改,并在 class 的 for 循环内迭代 LoadingNumber。更改从未反映在消息中,我尝试在 PleaseWaitBehavior 中删除并重新添加。我完全被难住了。 Wicket 是否不允许我尝试做的事情?

Submit.add(new PleaseWaitBehavior(new Model<String>(
        "Processing Message " +  loadingNumber + " of " + size)));

我希望你意识到这里你连接了一个稍后在 UI 中使用的字符串。没有代码会再次重新计算并为 UI.

构造一个新的字符串

请在 https://cwiki.apache.org/confluence/display/WICKET/Working+with+Wicket+models 阅读 Wicket 中的静态模型与动态模型。

对于您的任务,您需要使用 Ajax 次调用来询问服务器进度并重新绘制消息。
这是一篇解释问题并提供示例解决方案的文章 - http://wicketinaction.com/2014/07/working-with-background-jobs/