[Seasar-user:4454] Re: ファイルダウンロード時のFacesContext#responseComplete()について

Tetsuya Toba [E-MAIL ADDRESS DELETED]
2006年 8月 30日 (水) 19:55:21 JST


Tetsuya Toba wrote:
> 鳥羽です。
> 
> S2JSF 1.1 beta3 でファイルダウンロードを行うロジックを作成して
> いるのですが、ダウンロードした後半部分に元の画面のHTMLが入って
> しまいました。
> 
> そこで、いろいろ調べたところ、レスポンスを返した後に
> 
>  FacesContext.getCurrentInstance().responseComplete();
> 
> を実行するとHTMLが付かなくなることが分かって、とりあえずそのよう
> に修正したのですが、response オブジェクト等は setter でもらえて
> いるのに、何故JSFに依存したこの一文を直接書かないといけないのか!?
> とかなりの抵抗感があります。
> 
> 何か、うまい方法はないものでしょうか?

環境を書くのを忘れていました。

S2    1.0 rc   1
Teeda 1.0 beta 6 SNAPSHOT
S2JSF 1.1 beta 3

ファイルアップロード用に tomahawk 1.1.3 を入れて、extensionsFilter
を適用しています。(以前にこのMLで教えていただきました。)

ちなみに、extensionsFilter を適用しない場合は、何の問題もないよう
です。

また、extensionsFilter を s2filter の後に適用した場合は、
IllegalStateException が発生しますが、この場合もHTMLは付きません。

extensionsFilter
s2filter
の順にした場合のみ、HTMLが付いてしまい、
FacesContext.getCurrentInstance().responseComplete();
を入れる必要があるようです。

良い解決方法があれば、よろしくおねがいします。

-- 
鳥羽 哲也




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