Wicket 快速双击提交按钮
Wicket quick double click submit button
我的 Wicket 表单有问题。在我的表单中,如果用户在 SubmitLink 上快速单击两次,则 onSubmit 方法调用两次,并且那里有一个对象的 2 个实例。我怎样才能防止这种情况发生?我试过使用布尔变量
@Override
public void onSubmit(){
if(!submitted){
submitted = true;
dao.save(object);
setResponsePage(differentPage.class);
}
}
这个方法对我不起作用。谁能帮帮我吗?
有一些解决方法可以防止重复提交。
我猜你可能没有添加 renderStrategy.So 先在你的申请中添加 setRenderStrategy
class .
直接,IRequestCycleSettings.RenderStrategy.ONE_PASS_RENDER.一切都在一个物理请求中处理。这是高效的,如果你想做复杂的集群,这是最好的选择。但是,它不会让您免受通常所说的 双重提交问题。
getRequestCycleSettings().setRenderStrategy(RequestCycleSettings.RenderStrategy.ONE_PASS_RENDER);
以上解决方案可能适用于您的情况。除此之外
您可以禁用点击按钮 submit
或者您可以使用一些指示器按钮 link 。
我用这行代码解决
save_btn = new AjaxSubmitLink("submit_btn", this) {
protected void onSubmit(AjaxRequestTarget art){
art.appendJavaScript("e.preventDefault();");
}
};
还有
getRequestCycleSettings().setRenderStrategy(RequestCycleSettings.RenderStrategy.ONE_PASS_RENDER);
当然
我的 Wicket 表单有问题。在我的表单中,如果用户在 SubmitLink 上快速单击两次,则 onSubmit 方法调用两次,并且那里有一个对象的 2 个实例。我怎样才能防止这种情况发生?我试过使用布尔变量
@Override
public void onSubmit(){
if(!submitted){
submitted = true;
dao.save(object);
setResponsePage(differentPage.class);
}
}
这个方法对我不起作用。谁能帮帮我吗?
有一些解决方法可以防止重复提交。
我猜你可能没有添加 renderStrategy.So 先在你的申请中添加 setRenderStrategy
class .
直接,IRequestCycleSettings.RenderStrategy.ONE_PASS_RENDER.一切都在一个物理请求中处理。这是高效的,如果你想做复杂的集群,这是最好的选择。但是,它不会让您免受通常所说的 双重提交问题。
getRequestCycleSettings().setRenderStrategy(RequestCycleSettings.RenderStrategy.ONE_PASS_RENDER);
以上解决方案可能适用于您的情况。除此之外
您可以禁用点击按钮 submit
或者您可以使用一些指示器按钮 link 。
我用这行代码解决
save_btn = new AjaxSubmitLink("submit_btn", this) {
protected void onSubmit(AjaxRequestTarget art){
art.appendJavaScript("e.preventDefault();");
}
};
还有
getRequestCycleSettings().setRenderStrategy(RequestCycleSettings.RenderStrategy.ONE_PASS_RENDER);
当然