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

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2007年 2月 26日 (月) 16:17:54 JST


大谷です。

> > この初期表示のライフサイクルなのですが,
> > JSFの資料を見て,私も上記の認識でしたが,
> > 非JSFページAに対し,
> > リクエストパラメータを設定し
> > A.jsp?xxx=XXとかの設定を行うと,
> > 以降のフェーズが通ることを確認しています。
> > (org.seasar.teeda.core.lifecycle.impl.RestoreViewPhaseの
> > executePhaseの最終行の処理)

これはTeedaのバグだったので修正しました。
次のバージョンには反映されます。

宜しくお願いします。

07/02/26 に Shinpei Ohtani<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 大谷です。
>
> > この初期表示のライフサイクルなのですが,
> > JSFの資料を見て,私も上記の認識でしたが,
> > 非JSFページAに対し,
> > リクエストパラメータを設定し
> > A.jsp?xxx=XXとかの設定を行うと,
> > 以降のフェーズが通ることを確認しています。
> > (org.seasar.teeda.core.lifecycle.impl.RestoreViewPhaseの
> > executePhaseの最終行の処理)
>
> こちらの件は調査してみます。
>
> > 「TeedaExtensionを参考に」とのことですが、
> > 具体的にどのクラスなりメソッドが参考になりますでしょうか?
>
> org.seasar.teeda.extension.html.impl.HtmlViewHandlerです。
> 1.0.4であれば、restoreViewメソッドでinitializeが呼ばれ(postbackではない場合)、
> renderViewでprerenderが呼ばれています。
>
> 宜しくお願いします。
>
> 07/02/26 に [E-MAIL ADDRESS DELETED]<[E-MAIL ADDRESS DELETED]>
> さんは書きました:
> > お世話になります。田口です。
> > さっそくのご回答ありがとうございます。
> >
> > >の2つしかとおらないので、InvokeApplicationフェーズはとおりません。
> > この初期表示のライフサイクルなのですが,
> > JSFの資料を見て,私も上記の認識でしたが,
> > 非JSFページAに対し,
> > リクエストパラメータを設定し
> > A.jsp?xxx=XXとかの設定を行うと,
> > 以降のフェーズが通ることを確認しています。
> > (org.seasar.teeda.core.lifecycle.impl.RestoreViewPhaseの
> > executePhaseの最終行の処理)
> >
> > 「TeedaExtensionを参考に」とのことですが、
> > 具体的にどのクラスなりメソッドが参考になりますでしょうか?
> >
> > 以上,よろしくお願いいたします。
> >
> >
> > >大谷です。
> > >
> > >初期表示時にJSFのライフサイクルは
> > >・RestoreViewPhase
> > >・RenderResponsePhase
> > >の2つしかとおらないので、InvokeApplicationフェーズはとおりません。
> > >
> > >なので、InvokeApplicationフェーズでPhaseListenerを仕掛けるのは
> > >適切ではないと思います。
> > >
> > >TeedaExtensionを参考に、初期表示時にでも通る
> > >・RestoreViewPhase
> > >・RenderResponsePhase
> > >にPhaseListenerを仕掛けるのがよいのではないでしょうか。
> > >
> > >以上宜しくお願いします。
> > >
> > >07/02/26 に [E-MAIL ADDRESS DELETED]<[E-MAIL ADDRESS DELETED]>
> > >さんは書きました:
> > >> 田口です。
> > >> お世話になります。
> > >>
> > >> 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 mailing list
> > >> [E-MAIL ADDRESS DELETED]
> > >> https://ml.seasar.org/mailman/listinfo/seasar-user
> > >>
> > >
> > >
> > >--
> > >=============================
> > >Shinpei Ohtani
> > >[E-MAIL ADDRESS DELETED]
> > >=============================
> > >_______________________________________________
> > >Seasar-user mailing list
> > >[E-MAIL ADDRESS DELETED]
> > >https://ml.seasar.org/mailman/listinfo/seasar-user
> > >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
>
>
> --
> =============================
> Shinpei Ohtani
> [E-MAIL ADDRESS DELETED]
> =============================
>


-- 
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================



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