- PR -

ファイル出力時、画面遷移を行いたくないですが。。。

1
投稿者投稿内容
MARU
会議室デビュー日: 2006/02/09
投稿数: 9
投稿日時: 2006-02-27 16:13
初めまして。

JSP画面のボタンを押すとデータをCSVで出力する機能を作っています。
ファイルダイアログを出してCSV出力することはできましたが、ファイル出力の時画面遷移を行ってしまいます。
現在の画面のまま、ファイルを出力するにはどうすれば良いでしょうか?
よろしくお願いしますm(__)m

・CSV出力ロジックはServletです。

・現状:ボタンクリック(JSP)→CSV出力(Servlet)→空画面
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-02-27 16:38
1.CSV出力ロジックのServletをwindow.open()で新規ウィンドウとして開く。
2.画面内にサイズ0の見えないiframeを追加して、ボタンが押されたときに下記のようなスクリプトを実行する。
iframe.location.href = "CSV出力ロジックのServlet";

思いつくのはこの2つぐらいですかねぇ。
もっと別の方法もあるかもしれませんが。。。



[ メッセージ編集済み 編集者: burton999 編集日時 2006-02-27 16:39 ]
KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2006-02-27 16:58
ディスパッチしない。
では駄目ですか?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-02-27 17:51
SourceForge とかダウンロードが自動的に始まるけど画面遷移しないですよね。
参考になるでしょうか。
orangeful
常連さん
会議室デビュー日: 2004/09/01
投稿数: 23
投稿日時: 2006-02-27 17:55
現在の実装でどのような画面に飛んで(飛ばされて)いるか等にもよりますが。

もしかして: CSV ダウンロード Content-Disposition
MARU
会議室デビュー日: 2006/02/09
投稿数: 9
投稿日時: 2006-02-28 11:02
皆様

ご回答どうもありがとうございます。

orangeful様のコメントを参考にして問題を解決できました。

FileDialogは削除し、
コード:
response.setContentType("application/octet-stream; charset=Cp943C");
response.setHeader("Content-Disposition","inline; filename=\\""+fileName+"\\"" ); 
response.setBufferSize( 163840 ); 
PrintWriter out = response.getWriter(); 
out.print(ーーーー); 
out.close();


でできました。

どうもありがとうございます(^O^)
1

スキルアップ/キャリアアップ(JOB@IT)