[Seasar-user:3025] Re: [S2JSF] s:forEach中のinputに値がセットされなくなる
Hokino Masatoshi
m_hokino
2005年 12月 15日 (木) 18:49:40 JST
保木野です。
>本間です。
略
>うーん、残念です。私の環境で再現できれば良いのですが...
>デプロイするだけで再現できるwarファイルを頂くことはできます
>か? (どこかにアップしていただくとか)
>再現手順は教えていただいていますが、人手が入る以上手違いは起
>こり得ますので。
返信が遅くなってしまい、申し訳ありませんでした。
表題の現象を再現させる簡単なwarを作る事はできますが、アップする場所がありま
せん。
申し訳ないです。
一応、s2-jsf-blank-1.0.11.zipをベースに作った再現サンプルを添付いたします。
s2-jsf-blank-1.0.11.zipのjarをWEB-INF/lib下にコピーしてもらえれば
動きます。
さっとですが、 s2jsf のソースを読んで見ました。
immediate=falseのときは、
APPLY_REQUEST_VALUES → PROCESS_VALIDATIONS → UPDATE_MODEL_VALUES
という順でフェーズが処理されています。
immediate=trueのときは
APPLY_REQUEST_VALUES
のみが処理されているように見えます。
immediate=trueでページを遷移すると
APPLY_REQUEST_VALUESフェーズで、
org.seasar.jsf.component.ForEachのEditableValueHolderStateの
submittedValueに値がセットされます。
再度、現象の現れるページを表示したときに
org.seasar.jsf.component.ForEachのencodeChildrenが呼ばれ
EditableValueHolderStateのsubmittedValueの値を
コンポーネントにセットしているため
DTOの値が正しく表示されないという現象が起きているようです。
#上記の事を考えると、inputTextに依存した問題ではなさそうなので
#selectなどで試してみましたが現象は再現いたしました。
immediate=trueが指定されているときは、EditableValueHolderStateの
submittedValueをnullにすれば現象を回避できるような気がします・・・。
完全に理解したわけではないので、どう変更(修正?)すればいいと言うのは思いつ
きませんが
解決の糸口になれば・・・。
お手数をかけて申し訳ありません。
よろしくお願いします。
-------------- next part --------------
テキスト形式以外の添付ファイルを除去しました...
ファイル名: forEach-test.zip
型: application/x-zip-compressed
サイズ: 46270 バイト
説明: 無し
URL: http://lists.sourceforge.jp/mailman/archives/seasar-user/attachments/20051215/f4ab5e61/forEach-test-0001.bin
Seasar-user メーリングリストの案内