[Seasar-user:12875] Re: 【teedaExt】saveState/restoreStateの動作に関して

Yasuo Higa [E-MAIL ADDRESS DELETED]
2008年 2月 14日 (木) 20:48:10 JST


ひがです。
> > 
> > お世話になっております。鈴木です。
> > 
> > UIComponentのsaveState/restoreStateの動作に関して教えていただきたいと思います。
> > restoreStateに引数で渡ってくるコンポーネントの状態ですが、
> > 直近にsaveStateされたものではなく、
> > 始めてComponentTreeを作った時のものが渡ってきているような感じがします。
> > そのような動作なのでしょうか?
> > 
> これは、意図したものです。
> 
> > これを直近のsaveStateされたものに変更する事はできませんでしょうか?
> > (こうなるのがJSFの仕様だと思っていました)
> > 
> StateManagerを
> org.seasar.teeda.core.application.implの
> TeedaSessionStateManagerに変えれば、
> 直前のものを保存するようになります。
> 
> ただし、そうすると、コンポーネントステートを
> すべてセッションに保存するようになり、
> 多くのメモリを必要とするようになります。
> 
> また、セッションに保存するときに、コンポーネントステートの
> オブジェクト(SerializedView)を作るので、動作も遅くなるでしょう。

説明が足らなかったので補足します。
確かに、TeedaSessionStateManagerを使えば、JSFの仕様どおりに動くの
ですが、メモリとパフォーマンスを失います。

それを避けるために、Teedaでは、UIComponentをステートレス
にすることで、セッションを使わないようにがんばっているのです。

お勧めは、UIComponentをステートレスに作ることです。
直前の状態が復元されることを当てにしないという意味です。

よろしくお願いします。


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