GWT - вернуть объект после загрузки файла из FormPanel? - PullRequest
1 голос
/ 19 августа 2010

Я загружаю файл, используя FileUpload и FormPanel, на сервере я генерирую список, используя данные из загруженного файла. Проблема в том, что мне нужно отобразить этот список на клиенте, но я не могу найти способ его сериализации, используя сериализацию GWT в обычном HttpServlet. Только в RemoteServiceServlets, которые не могут обработать запрос FormPanel.

Кроме того, я бы даже не знал, как десериализовать объект на клиенте после того, как получил его из SubmitCompleteEvent.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2010

Вместо использования сериализации GWT-RPC я бы предложил использовать JSON для сериализации списка на сервере.

0 голосов
/ 20 августа 2010

Я разработал индивидуальное решение для этого в компании, в которой я работаю. Он использует некоторый код из gwt-upload проекта . Идея, которую я сделал, состоит в следующем:

  • вспомогательный сервлет для загрузки
    • получает файлы с помощью почтовых запросов
    • обеспечивает загрузку недавно загруженных файлов с помощью запросов get (параметр включает ID)
  • файловый сервис для административных задач
    • получение уникального идентификатора для загрузки файла в сервлет
    • спрашивает, каково состояние загрузки (процент, ошибка, отмена, ок)
    • запрашивает "URL для загрузки" (в основном проверяет, существует ли файл и предоставляет servletURL + id)

Я объявил структуру для статической обработки временно загруженных файлов. Таким образом, он является глобально видимым для сервлета и для контроллера GWT. Если вам это не нравится, вы также можете выполнить некоторую инициализацию в contextlistener и сохранить ссылку на глобальную систему загрузки файлов в контексте Application. Таким образом, реализация службы GWT и реализация сервелта могут получить к ней доступ в любом случае.

...