java - Wicket 快速双击提交按钮

标签 java forms submit wicket

我的 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/

相关文章:

javascript - HTMLFormElement.reportValidity() 忽略 "display:none"输入字段

html - 为什么 <fieldset> 的清除 float ?

javascript - 单击其他时取消选中复选框

javascript - Jquery - 获取父元素的数据ID

javascript - 使用submit()方法提交表单时的回调

java - 如何从android studio中的另一个模块导入类?

java - 验证 Gherkin 功能文件

java - 随机化井字

java - Spring 安全与 struts 集成

php - 接受/拒绝提交按钮与 php 循环