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)
我知道这是一个老问题,但我遇到了同样的问题,这些答案都不是解决方案。调用后FormPanel.submit(),响应将在新选项卡中打开,并且onSubmitComplete()不会被调用。
解决方案最终是 myFormPanel没有添加到我调用的对话框中submit()。由于表单完全由Hidden字段组成,其值是根据按下的页面上的按钮设置的,因此我的表单FormPanel实际上不包含任何具有用户可选值的表单小部件,因此我不需要将其添加到任何地方的窗口。
这就是导致响应在新窗口中打开但onSubmitComplete()未被调用的原因。我将它添加到我的面板中DialogBox,之后它就正常工作了。
| 归档时间: |
|
| 查看次数: |
3422 次 |
| 最近记录: |