GWT:如何从多部分表单(文件)上传返回(和处理)错误
Posted
技术标签:
【中文标题】GWT:如何从多部分表单(文件)上传返回(和处理)错误【英文标题】:GWT: How to return (and handle) an error from multipart form (file) upload 【发布时间】:2011-03-28 05:56:07 【问题描述】:我有 Google Web Toolkit (Multipart) Form 将文件发布到我的 servlet。当 servlet 中发生错误情况时,我返回一个错误。当一切正常时,我返回一个 JSON 字符串。
...
response.setContentType("text/html");
response.setCharacterEncoding("UTF8");
response.getWriter().write(out.toString());
catch (FileUploadException e)
response.sendError(500, e.getMessage());
catch (Exception e)
response.sendError(500, e.getMessage());
问题是我找不到在客户端处理这个问题的方法。这是在发布正常和返回错误代码时触发的事件。但我找不到如何找到它是否可以?以及如何从客户端代码中的异常中获取错误消息?
@UiHandler("form")
void submitComplete(SubmitCompleteEvent event)
...
【问题讨论】:
您可以覆盖默认错误文档(在您的服务器配置中),以便它们只输出状态代码等 - 搜索“500”会更容易" 在响应中,然后解析整个默认错误页面。 @Igor Klimer:只为一个 servlet 更改服务器配置是否值得?为什么我找不到响应代码(200 或 500)? 嗯,很奇怪,您无法访问响应代码,就像在RequestBuilder
... 但现在似乎无能为力(也许在 GWT 的错误跟踪器上创建一个新问题/改进?)来自 GWT 组的两个相关线程:groups.google.com/group/google-web-toolkit/browse_thread/thread/… 和 groups.google.com/group/google-web-toolkit/browse_thread/thread/…。将响应的内容类型设置为text/html
似乎很重要,以确保它适用于所有浏览器(即使它实际上包含 JSON)。
@Igor Klimer 非常感谢 :) 看来我必须返回带有代码 200 的错误消息或更改服务器配置(或忽略从 servlet 返回的所有不正确 JSON 的内容)
很高兴我能帮上忙 :) 我添加了一个总结上述 cmets 的答案,以便其他人可以更轻松地找到这个问题的答案。
【参考方案1】:
目前,似乎没有合适的方法可用(如Response
的getStatusCode
)。您必须处理服务器在SubmitCompleteEvent.getResults()
中返回给您的错误文档。您可以通过在您的服务器上设置更易于解析/处理的自定义错误文档(您应该为您的生产服务器使用任何一种方式)来简化此任务。
GWT 的 Google 群组中的相关主题:one 和 two。
【讨论】:
以上是关于GWT:如何从多部分表单(文件)上传返回(和处理)错误的主要内容,如果未能解决你的问题,请参考以下文章