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

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 2月 26日 (月) 16:32:45 JST


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

>> org.seasar.teeda.extension.html.impl.HtmlViewHandlerです。
>> 1.0.4であれば、restoreViewメソッドでinitializeが呼ばれ(postbackではない場合)、
>> renderViewでprerenderが呼ばれています。
こちらの方式で検証し,
問題なく動作することを確認しました。

ありがとうございました。


>大谷です。
>
>> > この初期表示のライフサイクルなのですが,
>> > 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 mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user
>



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