我遇到以下问题 - 我们正在使用FormPanel
将文件发送到Servlet,后者接受参数并尝试从此文件中解析XML
。这很好。
问题是用户上传了错误的文件,因此解析以SAXException
结束,我想将其传播给客户端(或异常的消息)。我试过像
catch (SAXException ex) {
response.setStatus(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
response.flushBuffer();
}
但它不起作用,我总是得到空标记(<pre></pre>
)。我试图用
formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {
@Override
public void onSubmitComplete(SubmitCompleteEvent event) {
String s = event.getResults();
});
我可以在我的Servlet中使用response.getWriter().write("Error");
,但客户端如何知道错误是否确实发生?使用像event.getResults().contains("error")
这样的东西在我看来并不是一个正确的解决方案。
所以我正在考虑使用RequestBuilder
,但我没有看到如何获取上传文件并将其推送到我的servlet的方法。或者将我的消息转换为JSON
会有帮助吗?
答案 0 :(得分:1)
您应该参考google gwt讨论组中的this thread。您描述的方式,解析event.getResults()
以确定是否存在错误或成功的结果是正确的方法,即使它看起来很野蛮。
正如链接讨论中所建议的那样,您可以查看GWT Upload以获取更清晰的代码,以及上传进度信息。我相信从网页上传文件到服务器的唯一两个选择是表单或Flash。