[英]Not correct uploading with gwt upload
我的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文檔,以在web.xml中添加servlet映射。
Uploader uploader = new Uploader(FileInputType.BROWSER_INPUT);
uploader.setServletPath("myservletpath");
uploader.setAutoSubmit(false);
uploader.setEnabled(true);
Button uploadButton = new Button("Upload");
uploadButton.addClickHandler(new ClickHandler()){
myService.getMyObject(name, new AsyncCallback<List<Object>>() {
@Override
public void onFailure(Throwable caught) {
//do something
}
@Override
public void onSuccess(List<Object> listMyObject) {
//do something if condition satisfies then submit
if(conditionSatifies){
uploader.submit();
}else{
//do something, prompt a message
}
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.