[Seasar-user:3084] Re: [S2JSF] f:paramで最新の値が評価されない

Hirotaka HONMA manhole
2006年 1月 12日 (木) 21:46:39 JST


本間@アークシステムです。

On 1/11/06, Kaisei HAMAMOTO <[E-MAIL ADDRESS DELETED]> wrote:
> 浜本です。お世話になっております。
>
> <span m:inject="f:param" m:name="xxx" m:value="#{yyy}"/>
>
> を使ってページタイトル等の埋め込みを行なうとき、xxxに最新の#{yyy}の内容
> が反映されないという現象が発生します。
>
> [再現方法]
>
> S2JSF Example 1.0.12 の foreach2/forEach2List.html において
>
> 8行目: <span m:inject="f:param" name="layoutTitle" m:value="ForEach2"/>
> "ForEach2" -> "#{forEach2DtoList[0].input}"
>
> と変更し、ページにアクセスします。
>
> 1つ目のテキストボックスの値を変更して"update"ボタンをクリックすると、
> ページのタイトルの更新が遅れる様子を確認できます。
>
> この現象の対応策がありましたらお教えいただきたく思います。
> よろしくお願いいたします。

S2JSFを修正しました。
次バージョンから反映されます。

----

■原因

f:paramでは、
(1) m:valueの値をrequestへ保存する
(2) htmlでrequestから値を取得する
というロジックになっています。

今までは(1)の処理をlifecycleの先頭(RESTORE_VIEWフェーズより
前)で行っていました。
この時点では画面入力値がDTOへ反映されていないため、前画面の
値がrequestへ保存され、(2)で画面へ表示されていました。

■修正内容

(1)の処理をRENDER_RESPONSEフェーズの直前で行うようにしました。



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