1

我有以下问题 - 我们正在使用FormPanel将文件发送到 Servlet,该 Servlet 接受参数并尝试XML从该文件中解析。这工作正常。

问题是当用户上传了错误的文件时,所以解析以SAXException我想传播(或异常的消息)到客户端的结尾。我尝试了类似的东西

catch (SAXException ex) {
    response.setStatus(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
    response.flushBuffer();
}

但它不起作用,我总是得到空标签pre(<pre></pre>)。我试图抓住这个

formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {

    @Override
    public void onSubmitComplete(SubmitCompleteEvent event) {
        String s = event.getResults();
    });

我可以response.getWriter().write("Error");在我的 Servlet 中使用,但是客户端如何知道错误是否真的发生了?使用类似的东西event.getResults().contains("error")在我看来并不是一个正确的解决方案。

所以我正在考虑使用RequestBuilder,但我看不到如何获取上传的文件并将其推送到我的 servlet。或者也许将我的信息转换为JSON会有所帮助?

4

1 回答 1

1

您应该参考google gwt 讨论组上的这个线程。您描述的方式,解析event.getResults()以确定是否存在错误或成功的结果是正确的方法,即使它可能看起来很野蛮。

正如链接讨论中所建议的那样,您可以查看GWT Upload以获得更简洁的代码,以及上传进度信息。我相信从网页上传文件到服务器的唯一两种选择是表单或 Flash。

于 2012-06-26T14:10:36.470 回答