У меня проблема с gwt-upload: мне нужно onChange Upload, чтобы получить мой объект из db; если он существует, веб-приложение может загружать файл с помощью Servlet, иначе он отображает предупреждение.Неправильная загрузка с помощью gwt upload
Код с комментарием работает только в позиции с комментарием «Это работает».
Почему он не запускается в блоке 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] (https://code.google.com/p/gwtupload/wiki/GwtUpload_GettingStarted). Вы не используете его правильно. Также вызов, который вы делаете внутри переопределенного метода 'onChange', является асинхронным, что означает, что приложение не будет ждать появления вашего объекта на клиенте и продолжит выполнение дальше. – pratZ
Есть ли обходной путь, чтобы избежать этого? @pratZ – django