Java Wicket快速双击提交按钮
我对Wicket表单有问题。在我的表单中,如果用户在SubmitLink上快速单击两次,onSubmit方法调用两次,其中有两个对象实例。我怎样才能防止这种情况?我尝试过使用布尔变量Java Wicket快速双击提交按钮,java,forms,submit,wicket,Java,Forms,Submit,Wicket,我对Wicket表单有问题。在我的表单中,如果用户在SubmitLink上快速单击两次,onSubmit方法调用两次,其中有两个对象实例。我怎样才能防止这种情况?我尝试过使用布尔变量 @Override public void onSubmit(){ if(!submitted){ submitted = true; dao.save(object); setResponsePage(differentPage.class); } } 这种方法对我不起作用。有人
@Override
public void onSubmit(){
if(!submitted){
submitted = true;
dao.save(object);
setResponsePage(differentPage.class);
}
}
这种方法对我不起作用。有人能帮我吗 有一些方法可以防止重复提交 我猜您可能没有添加renderStrategy。因此,首先在应用程序类中添加
setRenderStrategy
直接、IRequestCycleSettings.RenderStrategy.ONE\u PASS\u RENDER。所有内容都在一个物理请求中处理。这是高效的,如果您想进行复杂的集群,这是最好的选择。但是,它并不能使您避免通常所说的双重提交问题
getRequestCycleSettings().setRenderStrategy(RequestCycleSettings.RenderStrategy.ONE_PASS_RENDER);
上述解决方案可能适用于您的案例。除此之外
您可以禁用单击“提交”按钮,也可以使用一些指示按钮链接 我用这行代码解析
save_btn = new AjaxSubmitLink("submit_btn", this) {
protected void onSubmit(AjaxRequestTarget art){
art.appendJavaScript("e.preventDefault();");
}
};
和
getRequestCycleSettings().setRenderStrategy(RequestCycleSettings.RenderStrategy.ONE_PASS_RENDER);
当然wicket的哪个版本?wicket core 7.1.0抱歉,我不明白您想说什么您的
submitted
变量应该可以防止双重提交。我也在使用同一个版本,但我使用了一些指示符按钮,可以防止我重复提交。有一些解决方法,您可以禁用按钮onclick
,或者使用指示符
排序提交。问题的主要原因是RenderStrategy