Wicket:PleaseWaitBehavior-Showing,"加载X的Y"

时间:2015-06-30 21:34:46

标签: java ajax wicket

我试图显示一条加载消息,告诉用户点击提交后他们在加载过程中的距离。问题是,加载栏显示,但它显示"加载0 0和#34;,直到过程结束。

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

这是处理提交行为的类。我在handleSubmit(target)方法中将这两个数字从0更改,并在该类的for循环中迭代LoadingNumber。该更改从未反映在邮件中,我已尝试删除并添加回PleaseWaitBehavior中。我完全难过了。 Wicket不允许我尝试做什么吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

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