[Seasar-user:18301] Re: [SAStruts][S2Csv]S2Csvの結果をResponseUtil.downloadに直接渡す方法について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2009年 8月 17日 (月) 17:00:01 JST


小林 (koichik) です.

Date:    Mon, 17 Aug 2009 16:17:03 +0900
From:    山田 祐己 <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:18300] [SAStruts][S2Csv]S2Csvの結果をResponseUtil.downloadに直接渡す方法について

> そこで確認なのですが、SAStrutsにはファイルのダウンロードで
> ResponseUtil.downloadメソッドが有りますが、
> このメソッドにS2CSVWriteCtrlのwriteの結果を
> (出来れば、一旦ファイルに吐き出さずに、そのまま結果を)
> 渡したいのですが、どの様にすると良いでしょうか。

ByteArrayOutputStream os = new ByteArrayOutputStream(1024);
OutputStreamWriter writer = new OutputStreamWriter(os, "UTF-8");
S2CSVWriteCtrl<XxxCsv> csvWriter = 
    csvCtrlFactory.getWriteController(XxxCsv.class, writer);
csvWriter.write(xxxCsv);
writer.close();

byte[] data = os.toByteArray();
ByteArrayInputStream is = new ByteArrayInputStream(data);
ResponseUtil.download("xxx", is, data.length());


メーラで書いただけなのでコンパイルも通らないかも
しれませんが,おおむねこんな感じでいいのでは.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内