作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
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>
最佳答案
我知道这是一个老问题,但我遇到了同样的问题,这些答案都不是解决方案。调用 FormPanel.submit()
后,响应将在新选项卡中打开,并且不会调用 onSubmitComplete()
。
最终的解决方案是我的 FormPanel
没有添加到调用 submit()
的对话框中。由于表单完全由 Hidden
字段组成,其值是根据页面上按下的按钮设置的,因此我的 FormPanel
实际上不包含任何表单小部件与用户可选值,所以我不需要将它添加到窗口的任何地方。
这就是导致响应在新窗口中打开并且 onSubmitComplete()
未被调用的原因。我将它添加到我的 DialogBox
面板中,然后它就可以正常工作了。
关于java - GWT 表单面板不调用 onSubmitComplete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13078770/
GWT:我可以在浏览器中调用 servlet。当我通过 formpanel 调用它时,它可以调用 onSubmit。但它不会调用 onSubmitComplete。它还会弹出一个新窗口,uri 是我的
我是一名优秀的程序员,十分优秀!