【发布时间】:2014-10-07 13:21:06
【问题描述】:
我的 gwt-upload 有问题:我需要 onChange Upload 才能从 db 获取我的对象;如果存在,Web 应用可以使用 Servlet 上传文件,否则会显示警报。
带有注释的代码只在带有“It works”注释的位置运行。
为什么不在 else 块中运行?
final MultiUploader upload = new MultiUploader(FileInputType.BUTTON);
upload.addOnChangeUploadHandler(new OnChangeUploaderHandler() {
@Override
public void onChange(IUploader uploader) {
myService.getMyObject(name, new AsyncCallback<List<Object>>() {
@Override
public void onFailure(Throwable caught) {
Window.alert("Something");
}
@Override
public void onSuccess(List<Object> listMyObject) {
if(listMyObject.size() == 0) {
Window.alert("Error.");
} else {
//It doesn't works.
String url = GWT.getModuleBaseURL() + "upload?nameObject=" + name;
upload.setServletPath(url);
}
}
});
}
});
//It works.
String url = GWT.getModuleBaseURL() + "upload?nameObject=" + name;
upload.setServletPath(url);
【问题讨论】:
-
您需要在gwtupload documentation 上阅读更多内容。您没有正确使用它。此外,您在覆盖的
onChange方法中进行的调用是异步的,这意味着应用程序不会等待您的对象出现在客户端上,而是会继续进一步执行。 -
是否有避免这种情况的解决方法? @pratZ
标签: java servlets gwt gwtupload