【发布时间】:2017-01-12 18:42:37
【问题描述】:
我在使用 IndicatingAjaxButton 的 onSubmit 提交表单时尝试更新和呈现组件。但是一旦 onSubmit 完成,所有组件都会被渲染。有什么方法可以在我的表单仍在提交时呈现它们,比如在表单提交时显示更新进度条。我想在每次休息调用执行时显示进度。 这大致就是我正在做的事情:
public class MyPage {
Form form;
int items;
WebMarkupContainer progressbar = new WebMarkupContainer("progressbar");
int progress = 0;
MyData dataItems = new MyData();
public MyPage() {
progressbar.setOutpuMarkupId(true);
items = 5;
setupForm();
}
public void setupForm() {
form = new Form("form", new CompundPropertyModel(dataItems));
form.add(new IndicatingAjaxButton("button") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
for (int i = 0; i < items; i++) {
progress++;
progressbar.add(new AttributeModifier("style", "width: " + progress + "%;"));
//rest post call goes here
}
}
});
}
add(form);
add(progressbar);
}
//in html page
<div wicket:id="progressbar" id="progressbar" style="width: 0% ; background-color:green;"></div>
【问题讨论】:
-
如果我理解,您是否考虑过最多数百毫秒的快速提交(由服务器端的前端接受),以及服务器后端的长算法?提供代码来帮助你
-
第二次猜测,是上传大文件。 Wicket 有一些 ajaxified 解决方案(官方网站上的指南)
标签: java jakarta-ee wicket