2011-12-08 19 views
0

私は科学的なGWTアプリケーションを書いています。基本的にはパラメータを求めて計算を行い、結果をプロットします(数値データは表示されません)。それはうまく動作します。GWTアプリからデータをエクスポートする最も良い方法は?

ユーザーがデータを「エクスポート」する方法(1000倍精度数値)を求められました。私はこれをどのようにするべきですか?私は思う:

a) "Save as ..."ダイアログを開く "Export data"ボタンが最もエレガントな方法です。私が正しく理解していれば、これはセキュリティ上の理由からクライアント側では行えません。しかし、サーバー上でJavaサーブレットを実行することはできません。データセットが大きすぎるため、PHPスクリプトのURLを指定することはできません。

b)クリップボードにデータをコピーするボタンは、おそらく次善のものです。しかし、GWTは現在これを実装しておらず、JSNIではブラウザ間の解決策が複雑になっているようです。何かが失敗した場合、ユーザーはデータにアクセスできなくなります。

c)PopUpPanelを開くためのボタン、または数値データを表示する新しいウィンドウ。最後の手段。 「すべて選択」でデータのみを選択できるように実装する必要があります。

どのような考えですか?誰もがc)を回避する方法を考えることができますか?ありがとう。

答えて

0

まあ、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); 
+0

ああ、もちろんを。ありがとうございました! – HenriV

関連する問題