[Seasar-user:2712] Re: [S2JSF] セッションが切れた後に同じ画面が再表示される件
Yasuo Higa
higa
2005年 10月 18日 (火) 20:34:57 JST
<[E-MAIL ADDRESS DELETED]> の、
"[Seasar-user:2682] Re: [S2JSF] セッションが切れた後に同じ画面が再表示される件" において、
"Yamoto Takuhei <[E-MAIL ADDRESS DELETED]>"さんは書きました:
ひがです。
> 八本と申します。
>
> > s2jsf-example1.0.7を使って、各機能を検証しているのですが、
> > 例えばトップページを開いていて、セッションが切れた後に
> > リンクをクリックするとトップページが再表示されます。
> > もう一度同じリンクをクリックすると、そのページへ遷移します。
>
> この現象は、セッション切れでトップページのコンポーネント
> ツリーが失われたために発生しているのではないでしょうか。
>
調べました。
確かにその通りです。
> たしか、JSF1.1では表示しようとしたページのコンポーネント
> ツリーが存在しない場合は当該ページをはじめて表示しようと
> していると認識され、RestoreViewフェーズの直後に
> RenderResponseフェーズに遷移するようになっていたと思い
> ます。
>
S2JSFでは、いきなりRenderResponseフェーズに遷移することはしないのですが、
結局、UIViewRoot以外のコンポーネントがいないため、
リクエストの内容をデコードするコンポーネントが存在せず、
クリックが無視されて、最初の画面が表示されます。
JSFでは、コンポーネントのツリーは、JSFのタグがrenderされるときに
しか構築できないので、ツリーを何とか構築してデコードさせると
いうこともできません。
というわけで、これは、"STATE_SAVING_METHOD"="server"の場合のJSFの仕様で
プログラムでどうにかできません。
> "STATE_SAVING_METHOD"を"client"にすることで回避できない
> でしょうか。
>
これが、うまく機能するなら、大丈夫だと思いますが、現状うまくいかない
ですね。
この原因は、根が深そうで直ぐに答えが出せそうにありません。m(_ _)m
というわけで、今のところS2JSFの仕様とさせてください。m(_ _)m
---
Yasuo Higa <[E-MAIL ADDRESS DELETED]>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.
Seasar-user メーリングリストの案内