seamを使用して既存のWebアプリケーションに 'エクスポート'機能を追加する必要があります。目的は、検索結果をCSVファイルにエクスポートすることです。私はcsvを生成するのに問題はありませんが、どのようにcsvをユーザに送り返すのか分かりません。 サーバ上にcsvを格納する必要はありません。なぜなら、それは、ストレージスペースが腰掛けられるからです。 jbossの継ぎ目でどうしたらいいですか?いくつかの方法がありますjboss seamでファイルを生成してダウンロードする
1
A
答えて
5
Seamが提供するDocument Store Servletを使用してください。ほとんどの参照ドキュメントからコピー&ペースト
、このようなweb.xml
でサーブレットを宣言する:
<servlet>
<servlet-name>Document Store Servlet</servlet-name>
<servlet-class>org.jboss.seam.document.DocumentStoreServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Document Store Servlet</servlet-name>
<url-pattern>/seam/docstore/*</url-pattern>
</servlet-mapping>
のみ<s:resource>
タグとexport.xhtml
ファイルを作成します。ダウンロードするためのリンクを生成します
<s:resource xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
data="#{myComponent.csvData}"
contentType="application/vnd.ms-excel"
fileName="#{myComponent.csvFileName}"/>
をあなたのページのファイル:<s:download>
:
<s:download src="/csv/export.xhtml">
<h:outputText value="Download CSV"/>
<f:param name="param1" value="somevalue"/>
<f:param name="param2" value="someOtherValue"/>
</s:download>
(あなたが
propagation=none
を設定していない場合)
<s:download>
が会話を伝播することを
// could be byte[], File or InputStream
public InputStream getCsvData() {
// generate data to be downloaded
}
public String getCsvFileName() {
return "myfile.csv";
}
注:10
最後に、あなたのコンポーネントでgetCsvData()
とgetCsvFileName()
メソッドを実装します。おそらくあなたは会話のコンテキストを伝播する場合は、パラメータを渡す必要はありません。大規模なデータセットの場合、会話を伝播せず、リクエストスコープのコンポーネント内のデータを選択するためにパラメータを渡すのが望ましい場合があります。
0
:
1)プログラムであなたのファイルを生成して、CSVに設定されたMIMEタイプを使用してそれを書き出すようSeam-Excelを使用して情報のためのシームのドキュメントを確認してください - これはすべての詳細ですドキュメント内にあります。
しかしSeamの最新バージョンではこれを動作させることができませんでした。これは以前はSeamコンテキストから利用可能でしたが、現在はnullのみを返すレスポンスオブジェクトが必要です。
2)Excel xhtmlテンプレート(Seamのドキュメントとサンプルプロジェクトを参照)として必要なCSVファイルをコーディングし、単純にタグを使用して通常のようにレンダリングします。
私はこれを定期的に行いますが、正常に動作します。ファイル名を指定できないという制限があります。
HTH。
関連する問題
- 1. JBoss Seam - ViewExpiredException
- 2. JBoss Seam training
- 3. JBoss Seamプロジェクトのエラー
- 4. JBOSS SeamでXHTMLを使用しています
- 5. ボタン付きJBoss Seamキャンセルリクエスト
- 6. JBoss 7.1とSeam 2.2 - キャッシュ?
- 7. zk ajaxフレームワークとJBoss Seam
- 8. ASP.NETがファイルを生成して接続リセットをダウンロードする
- 9. Mavenでjboss seam buildをセットアップして、サーバのダウンロードと設定を行う方法は?
- 10. Jboss/Seamアプリケーションを新しいバージョンに移植する
- 11. SEAMプロジェクトはJBoss ASで動作しますか?
- 12. 不可能なテックスタック? Jboss/Seam/Resteasy/Hibernate/Maven
- 13. 開発環境Java 6、Maven 2.x、Eclipse 3.4.x、JBoss 5、JBoss Seam
- 14. jboss-messagingをダウンロード中にMavenエラーが発生しました
- 15. 複数のCSVファイルを生成し、ジップアップでダウンロードしてダウンロードしてください。
- 16. JBoss AS 6でseam-mailが動作しない
- 17. PHPを使用して動的に生成されたファイルをダウンロードする
- 18. recursiveTreeNodesAdaptorを使用してSeamでダイナミックツリーを作成する
- 19. Seam 2.2とJBoss Tools 3.1、なぜJBoss Toolsはもう機能しませんか?
- 20. JBoss 7.1にSeam 2.2アプリケーションをデプロイする際のエラー
- 21. アノテーションをJBoss SeamからCDI(JEE6)に変更する
- 22. SeamプロジェクトでSeamプロジェクトでテストを実行する
- 23. Jboss Seamインターポレータ:executeコマンド(java.lang.Runtime.exec)に使用できますか?
- 24. 許可ストアがJBoss Seamにインストールされていません
- 25. Seam 3プロジェクトの作成
- 26. JBoss Seam:ビューでjpa/hibernateセッションを開く方法
- 27. .txtを生成してダウンロードを強制する
- 28. サーブレットでファイルをアップロードしてダウンロードする
- 29. JBDSのSeamプロジェクトでTestingNGエラーが発生しました
- 30. asp.net MVCでファイルをダウンロードするためのリンクを生成するには?
あなたはステファノ! – jakob
私はこれを行っています(パラメータは一切渡していません)。ダウンロードリンクがレンダリングされますが、クリックするとアプリケーションはファイルをダウンロードするだけでなく新しいページに移動し、getCsvDataメソッドを新しいインスタンスで実行します。クラス(既存のページを裏付けているものと同じものではない)がすべてnullになるようにします。どんな考え? – tad604