[Seasar-user:6343] [Teeda]非JSFページからのアクセス時のライフサイクルについて

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 2月 26日 (月) 13:43:50 JST


田口です。
お世話になります。

S2 2.4.6,Teeda1.0.4で開発を行っています。
JSP表示前に初期化処理を行うため,
PhaseListenerを作成し,initialize処理を行っていますが,
非JSFページからのアクセス時(初回表示),
initialize処理が動かない事象が発生しています。

initializeとprerenderの判定は,
INVOKE_APPLICATIONフェーズにおいて,
viewroot.getViewId()により取得したViewIdを,
externalcontext.getRequestMap()により取得したRequestMapに保持し
これをRENDER_RESPONSEフェーズの際に取得したViewIdと比較し,
違えばinitializeを行い,
同じであれば,同一画面表示とみなし,initializeを行わないように
しています。

そこで,JSFページAからJSFページBに遷移する場合は,
INVOKE_APPLICATIONフェーズにおいて取得したViewIdはAなのですが,
非JSFページAからJSFページBに遷移する場合は,
取得したViewIdがAではなくBとなっており,
initializeが行われない状態です。

非JSFページからのアクセス時でも
上記の処理がきちんと動作するようにするには
どのような判定を行うようにすればいいでしょうか?

以上,ご教示ください。



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