Лучший способ экспортировать данные из приложения GWT? - PullRequest
0 голосов
/ 08 декабря 2011

Я написал научное приложение GWT, которое в основном просто запрашивает параметры, выполняет расчет и затем отображает результат (числовые данные не представлены).Это работает просто отлично.

Теперь пользователь спросил меня, как "экспортировать" данные (1000 чисел с двойной точностью).Как мне это сделать?Я думаю:

a) Самый элегантный способ - это кнопка «Экспорт данных», которая открывает диалоговое окно «Сохранить как ...».Если я правильно понял, по соображениям безопасности это невозможно сделать на стороне клиента.Но я не могу запустить сервлет Java на сервере, а набор данных слишком велик, чтобы указывать URL-адрес для сценария PHP.

б) Кнопка, которая копирует данные в буфер обмена, вероятно, будет следующей лучшей вещью,Но похоже, что GWT в настоящее время не реализует это, и кросс-браузерное решение было бы сложно в JSNI.Если что-то не получится, у пользователя не будет доступа к данным.

c) Кнопка, чтобы открыть PopUpPanel или новое окно, в котором будут отображаться числовые данные.Крайнее средство.Должны быть реализованы таким образом, чтобы «Выбрать все», чтобы выбрать только данные.

Есть мысли?Кто-нибудь может придумать способы избежать c)?Спасибо.

1 Ответ

0 голосов
/ 08 декабря 2011

Ну, вы можете POST данные в сценарий PHP. Вам не нужно передавать его в URL. Вы можете отправить данные в любой серверный скрипт, используя класс FormPanel .

На странице JavaDoc есть пример, но он будет выглядеть примерно так:

FormPanel form = new FormPanel();
form.setAction("/yourPhpScript.php");
form.setEncoding(FormPanel.ENCODING_MULTIPART);
form.setMethod(FormPanel.METHOD_POST);

Hidden postData = new Hidden();
postData.setName("dataset");
postData.setValue( /* your data set */ );

form.add(postData);


form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
  public void onSubmitComplete(SubmitCompleteEvent event) {
    // When the form submission is successfully completed, this event is
    // fired. Assuming the service returned a response of type text/html,
    // we can get the result text here (see the FormPanel documentation for
    // further explanation).

    // So what you want to return from your PHP script is a link to a URL of the exported results
    Window.alert(event.getResults());
  }
});

RootPanel.get().add(form);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...