【问题标题】:GWT - Return object after file upload from FormPanel?GWT - 从 FormPanel 上传文件后返回对象?
【发布时间】:2010-08-19 17:50:14
【问题描述】:
我正在使用 FileUpload 和 FormPanel 上传文件,在服务器上我使用上传文件中的数据生成一个列表。
问题是我需要在客户端显示这个列表,但是我找不到在普通 HttpServlet 中使用 GWT 的序列化来序列化它的方法。仅在无法处理 FormPanel 请求的 RemoteServiceServlets 中。
另外,从 SubmitCompleteEvent 中获取对象后,我什至不知道如何反序列化客户端上的对象。
【问题讨论】:
标签:
java
gwt
file-upload
rpc
formpanel
【解决方案1】:
我在我工作的公司为此开发了一个自定义解决方案。它使用来自gwt-upload project 的一些代码。我所做的背后的想法是:
- 用于上传的帮助 servlet
- 通过发布请求接收文件
- 通过获取请求提供最近上传的文件下载(参数包括 ID)
- 用于管理任务的文件服务
- 获取文件上传到 servlet 的唯一 ID
- 询问上传状态如何(百分比、错误、取消、ok)
- 要求“下载网址”(基本上检查文件是否存在并提供servletURL+id)
我已经声明了静态处理临时上传文件的结构。这样,它对于 servlet 和 GWT 控制器是全局可见的。如果您不喜欢它,您还可以在上下文侦听器中进行一些初始化,并将对全局文件上传系统的引用存储在应用程序上下文中。这样,GWT Service 实现和 servelt 实现无论如何都可以访问它。
【解决方案2】:
我建议不要尝试使用 GWT-RPC 序列化,而是使用 JSON 序列化服务器上的列表。