[Seasar-user:1932] Re: S2JSF の無限ループ

Yasuo Higa higa
2005年 5月 6日 (金) 13:12:12 JST


<[E-MAIL ADDRESS DELETED]> の、
   "[Seasar-user:1931] S2JSFの無限ループ" において、
   "Takahashi Kenichi <[E-MAIL ADDRESS DELETED]>"さんは書きました:

ひがです。

> はじめまして。高橋と申します。
> 
> ・現在の問題
> 確認画面で「m:action="#{hoge.goPrevious}"」となっている戻るボタンを
> 押すと、登録画面に戻り、「m:action="#{hoge.goConfirm}"」が勝手に起動
> される。
> その後、確認画面にあるhoge.goPreviousが再び起動され、無限ループになる。
> 
確認画面と登録画面のformに違うidをつけてください。
それで大丈夫だと思います。
偶然、確認画面のhoge.goPreviousと登録画面のhoge.goConfirmに
同じidが付いているんだと思います。

後、org.seasar.jsf.lifecycle.LifecycleImpl#executeの
applyRequestValues(context);
の後に
if (isGetRedirect(context)) {
    sessionMap.put(REDIRECTED_TIME_ATTR,
        new Long(System.currentTimeMillis()));
}
を入れると別のidを付けなくてもなおりそうな気がするんですけど
どうでしょうか。試してみていただけないでしょうか。

LifecycleImplを見るといかにS2JSFが苦労しているのかがわかります。(笑)
というか苦労していない他のJSFの実装は、現場で本当に使われているのかと
疑問に思ったり。
---
ひがやすを(http://d.hatena.ne.jp/higayasuo/)



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