GWT 表单面板不调用 onSubmitComplete

use*_*853 5 java gwt servlets

GWT:我可以在浏览器中调用servlet。当我通过formpanel调用它时,它可以调用onSubmit。但它不会调用 onSubmitComplete。它还会弹出一个新窗口,uri 是我的 servlet。

String URL= GWT.getModuleBaseURL()+"getType";
         FormPanel formPanel = new FormPanel();  
         formPanel.setAction(URL); 
         formPanel.setEncoding(FormPanel.ENCODING_URLENCODED);  
         formPanel.setMethod(FormPanel.METHOD_GET); 

     formPanel.addSubmitHandler(new SubmitHandler(){

        @Override
        public void onSubmit(SubmitEvent event) {
            // TODO Auto-generated method stub
            System.out.println(event.getSource());
        }

     });
     formPanel.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {  
            public void onSubmitComplete(SubmitCompleteEvent event) { 
                System.out.println("in");
                System.out.println(event.getResults());  
            }  
        });  
     formPanel.submit();

GWT.xml
 <servlet class="msp2.server.getType" path="/getType" />  


web.xml
    <servlet >
<servlet-name>getType</servlet-name>
    <servlet-class>msp2.server.getType</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>getType</servlet-name>
    <url-pattern>/msp2_app/getType</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

Jef*_*art 5

我知道这是一个老问题,但我遇到了同样的问题,这些答案都不是解决方案。调用后FormPanel.submit(),响应将在新选项卡中打开,并且onSubmitComplete()不会被调用。

解决方案最终是 myFormPanel没有添加到我调用的对话框中submit()。由于表单完全由Hidden字段组成,其值是根据按下的页面上的按钮设置的,因此我的表单FormPanel实际上不包含任何具有用户可选值的表单小部件,因此我不需要将其添加到任何地方的窗口。

这就是导致响应在新窗口中打开但onSubmitComplete()未被调用的原因。我将它添加到我的面板中DialogBox,之后它就正常工作了。


Gan*_*mar 0

如果表单提交成功完成,onSubmitComplete 将被调用。确保表单提交没有错误。

发布您正在尝试的代码。这将帮助其他人找出问题。

您还可以尝试使用此处提供的 FormPanel 示例