我试图从servlet获得响应,这本质上是一个" .csv"文件。 我将一个文件上传到服务器解析它读取它然后如果文件中有任何错误我将其写入CSV文件并作为响应发回。但似乎响应永远不会回到onSubmitComplete上。 这是我的代码。
if (!errorContents.isEmpty()) {
CSVWriter csv = null;
try{
String filename = "errorList.csv";
resp.setContentType("text/plain");
resp.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
csv = new CSVWriter(new OutputStreamWriter(resp.getOutputStream()));
for (String[] row : errorContents) {
csv.writeNext(row);
}
}finally {
csv.close();
}
} else {
resp.setContentType("text/plain");
resp.getWriter().write("Successful Processing");
}
现在是客户端控制器的代码
formPanel.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
@Override
public void onSubmitComplete(FormPanel.SubmitCompleteEvent event) {
controller.reloadAll();
com.google.gwt.user.client.Window.alert(event.getResults().toString());
hideContentDiv();
// loading.hide();
}
答案 0 :(得分:1)
许多浏览器只会在text / html返回时触发事件。 这是一个已知的怪癖,并记录在案http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/user/client/ui/FormPanel.html#FormPanel()