我的 Wicket 表单有问题。在我的表单中,如果用户在 SubmitLink 上快速单击两次,则 onSubmit 方法会调用两次,并且会出现 2 个对象实例。我怎样才能防止这种情况发生?我尝试过使用 boolean 变量
@Override
public void onSubmit(){
if(!submitted){
submitted = true;
dao.save(object);
setResponsePage(differentPage.class);
}
}
这个方法对我来说不起作用。有人可以帮我吗?
最佳答案
有一些解决方法可以防止重复提交。
我猜您可能没有添加 renderStrategy。所以首先在您的应用程序类中添加 setRenderStrategy
。
直接,IRequestCycleSettings.RenderStrategy.ONE_PASS_RENDER。一切都在一个物理请求中处理。这是高效的,如果您想要进行复杂的聚类,这是最好的选择。但是,它并不能保护您免受通常所说的双重提交问题的影响。
getRequestCycleSettings().setRenderStrategy(RequestCycleSettings.RenderStrategy.ONE_PASS_RENDER);
以上解决方案可能适用于您的情况。除此之外
您可以在点击提交
时禁用该按钮,或者您可以使用一些指示器按钮链接。
关于java - Wicket 快速双击提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46343400/