繁体   English   中英

从GWT应用程序导出数据的最佳方法?

[英]Best way to export data from a GWT app?

我编写了一个科学的GWT应用程序,该应用程序基本上只是询问参数,执行计算,然后绘制结果(不显示数字数据)。 它工作正常。

现在,用户要求我提供一种“导出”数据(1000个双精度数字)的方法。 我应该怎么做? 我认为:

a)最优雅的方法是打开一个“另存为...”对话框的“导出数据”按钮。 如果我正确理解,出于安全原因,不能在客户端执行此操作。 但是我无法在服务器上运行Java servlet,并且数据集太大而无法提供PHP脚本的URL。

b)将数据复制到剪贴板的按钮可能是下一个最好的选择。 但是似乎GWT当前尚未实现此功能,因此跨浏览器解决方案在JSNI中将变得很复杂。 万一发生故障,用户将无法访问数据。

c)用于打开PopUpPanel的按钮或将显示数字数据的新窗口。 最后一招。 应以允许“全选”仅选择数据的方式实施。

有什么想法吗? 谁能想到避免c)的方法? 谢谢。

那么你可以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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM