[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 メーリングリストの案内