How to prevent DoubleSubmit in a GWT application?

后端 未结 2 1073
我在风中等你
我在风中等你 2021-01-05 19:16

To clarify what double submit is: When the user clicks on a submit button twice, the server will process the same POST data twice. To avoid this (apart from disabling the bu

相关标签:
2条回答
  • 2021-01-05 19:29

    This will be helpfull for you -

        final Button btn = new Button("Open");
        btn.addSelectionListener(new SelectionListener<ButtonEvent>() {
            @Override
            public void componentSelected(ButtonEvent ce) {
    
                        btn.setEnabled(false);
    
                        openMethod(name, new AsyncCallback<Void>() {
    
                            public void onFailure(Throwable caught) {
                                    btn.setEnabled(true);
                        }
                        public void onSuccess(Void result) {
                            MessageBox.alert(info, "Opened Window", null);
                            btn.setEnabled(true);
                            window.hide();
                        }
                    });
            }
        });
    
    0 讨论(0)
  • 2021-01-05 19:31

    If you want to avoid submitting twice, how about:

    boolean processing = false;
    button.addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
        if (!processing) {
          processing = true;
          button.setEnabled(false);
          // makes an RPC call, does something you only want to do once.
          processRequest(new AsyncCallback<String>() {
            @Override
            public void onSuccess(String result) {
              // do stuff
              processing = false;
              button.setEnabled(true);
            });
          });
        }
      }
    });
    

    That's the gist of it.

    0 讨论(0)
提交回复
热议问题