[Seasar-user:4428] Re: [S2JSF] initAction時のresponseCompleteでhtmlタグが出力される
Shouhei Shirai
[E-MAIL ADDRESS DELETED]
2006年 8月 28日 (月) 10:41:53 JST
しらいです。
米林さんレスありがとうございます。
ざっと以下の感じです。
(バイナリデータを一度読み込んでる点とか、HttpServletResponseを
FacesContextより取得しているとかは見逃してください・・・ )
----- 以下 -----
FileInputStream fin = null;
try{
fin = new FileInputStream(file);
byte[] data = new byte[fin.available()];
fin.read(data);
HttpServletResponse response = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setHeader("Expires", "01 Apr 2200 10:10:10 GMT");
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline;filename=" + new String("hoge".getBytes("Windows-31J"), "ISO8859_1"));
response.getOutputStream().write(data);
response.getOutputStream().flush();
// レスポンス終了
FacesContext.getCurrentInstance().responseComplete();
}catch(IOException e){
}catch(Exception e){
throw e;
}finally{
fin.close();
}
----- ここまで -----
以上、宜しくお願いします。
>米林です。
>
>From: "Shouhei Shirai" <[E-MAIL ADDRESS DELETED]>
>Sent: Monday, August 28, 2006 10:10 AM
>
>> こんにちは。しらいと言います。
>>
>> 現在、
>> S2 2.3.7
>> S2JSF 1.0.13
>> で開発を行っています。
>>
>> 仕組みの要求の一つに、とある画面内にてボタン押下時に別ウィンドウを開き
>> その中にPDFを表示させる、というものがあり、別ウィンドウのinitActionにて
>> バイナリデータをHttpServletResponseにwriteしてresponseComplete()を呼ぶ、
>> という方法を考えました。
>>
>> すると、バイナリデータの末尾に
>> <html></html>
>> が付加されてしまい、不明なファイルとして処理される場合が出てしまいました。
>>
>> なお、最新の S2JSF Example 1.0.16 でも試してみましたが、やはり
>> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>"http://www.w3.org/TR/html4/loose.dtd">
>> <html>
>> </html>
>> が付加されました。
>>
>> initAction時にresponseComplete()を呼んだ際に、<html>タグを出力しない方法は
>> 無いのでしょうか?
>> (そもそもinitActionでresponseComplete()すること自体が間違っているのか・・・)
>
>同様に別ウィンドウを開きPDF表示を実装した事があります。
>該当のinitAction内の記述を教えて頂けますか?
># ContentTypeの設定やHeaderの設定等。
>
>宜しくお願いします。
>
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://www.seasar.org/mailman/listinfo/seasar-user
----------
-- Syouhei Shirai :[E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内