2012-04-25 64 views
1

私は自分のJSPに「Export to CSV」というリンクを持っています。私が何をしたいのか、このリンクをクリックするとStruts2からCSVを作成してダウンロードする

  • がアクションにリクエストを送信しています。
  • アクションはAデータリストに値を設定します
  • 結果はjspに送出されます。
  • Jspはデータリストを繰り返し、csv形式で出力を生成します。
  • ダウンロードファイルのポップアップが名を持つ生成されたCSVファイルを開き、「myFile.csv」

私はStruts.xmlで何かをしないのですね。試しました

<action name="csvAction" class="demo.csvAction"> 
    <result>csvPage.jsp<result> 
</action> 

ダウンロードポップアップはファイル名 "csvAction.go"を示しています。

は、その後、私は

<action name="csvAction" class="demo.csvAction"> 
    <result type="stream"> 
     <param name="location">csvPage.jsp</param> 
     <param name="contentType">application/csv</param> 
     <param name="contentDisposition">filename="myFile.csv"</param> 
    <result> 
</action> 

をしようとしたが、それは場所の属性を無視し、ここに入力ストリームを期待しています。

誰でも私を案内できますか?

答えて

0

Jspはデータリストを繰り返し、csv形式で出力を生成します。

この場合、jspはデフォルトでファイル名を与える必要があります。

2番目のメソッドでは、inputStreamを渡してからこの入力ストリームを使用してCSVを作成します(つまり、Strutsのdatalistからcsvを準備することを意味します)。

ちょうど情報用:あなたが作成した場合、あなたはjxlまたはpoiを使うことができます。

+0

ありがとうございました。私はヘッダ "content-Disposition"を "attachment; filename = myFile.csv"に設定しました。しかし、Jspはcsvに余分なスペースと改行を追加します。 ""開始と終了タグのために別々の行があり、csvに余分な空白行が2行追加されます。この方法では2番目の方法が優れています。 しかし、struts2-jsonプラグインに結果の型が "json"のように、汎用のcsv結果型を記述する予定です。プロジェクトで多くのCSVを準備する必要があるためです。 –

関連する問題