GWT:当servlet向浏览器发送响应文件时,响应不会返回到SubmitCompleteEvent的表单
客户端代码:GWT:当servlet向浏览器发送响应文件时,响应不会返回到SubmitCompleteEvent的表单,gwt,download,httpresponse,Gwt,Download,Httpresponse,客户端代码: @UiHandler("form") void onFormSubmission(SubmitCompleteEvent event) { hideProcessingPopUp(); if (event.getResults().contains("Exception")) { // handle exception } } doPost方法中的Servlet代码: response.setContentType("text/csv");
@UiHandler("form")
void onFormSubmission(SubmitCompleteEvent event) {
hideProcessingPopUp();
if (event.getResults().contains("Exception")) {
// handle exception
}
}
doPost方法中的Servlet代码:
response.setContentType("text/csv");
response.setHeader("Content-Disposition", "attachment;filename="
+ exportType + ".csv");
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
response.getOutputStream(), "UTF-8"));
// Adding content
List<CustomObject> list = (List<CustomObject>) anonymousList;
for (CustomObject eachObject : list) {
writer.append(eachObject.getContent());
writer.newLine();
}
writer.flush();
// Gently close streams/writers.
close(writer);
return fileContent;
response.setContentType(“text/csv”);
setHeader(“内容处置”、“附件;文件名=”
+exportType+“.csv”);
BufferedWriter writer=新的BufferedWriter(新的OutputStreamWriter(
getOutputStream(),“UTF-8”);
//添加内容
列表=(列表)匿名列表;
用于(自定义对象每个对象:列表){
append(eachObject.getContent());
writer.newLine();
}
writer.flush();
//轻轻关闭流/写入程序。
关闭(作者);
返回文件内容;
Servlet代码很好,因为我得到了预期的数据和文件。问题在于响应没有到达客户端,即SubmitCompleteEvent。请帮助我,提前谢谢。浏览器就是这样工作的;事实上,它警告你: 后端服务器应以“text/html”的内容类型响应,这意味着返回的文本将被视为html。如果服务器指定了任何其他内容类型,则在onFormSubmit事件中发送的结果HTML在浏览器之间将是不可预测的,并且
onSubmitComplete
事件可能根本不会触发