[Seasar-user:4373] Re: f:paramで指定した値が、Actionに渡らない
cero
[E-MAIL ADDRESS DELETED]
2006年 8月 19日 (土) 04:20:30 JST
せろ@自己レスです。
落ち着いて考えると、
ボタンを押すタイミングでは、forEachに使っているxxxListが存在しないので、
f:paramのm:valueの値も、nullにならざるを得ない、、、という事ですね。
確認のために、xxxListをsessionで保持するよう
dicon定義したら、問題がなくなりました。
とは言え、検索結果のListなんて、sessionに入れたくない (^^;
ので、いったん、ボタンを使っていた所は、
リンクに置き換えることで、対応しようと思います。
ただ、inputタグも、aタグと同じように、
html上にf:param用の値を保持できれば、便利になるのに・・・と思いますが。
では。
> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED]
> [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Shin Tanimoto
> Sent: Friday, August 18, 2006 10:04 PM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:4372]f:paramで指定した値が、Actionに渡らない
>
>
> こんばんは、せろです。
>
> S2JSF 1.0.15にて、
> <input>タグの子要素に指定した<span m:inject="f:param">が
> 特定の状況で無視される(Actionのsetterが呼ばれない)ため、困っています
> 。
>
>
> 例えば、以下のようなHTMLで問題が発生します。
> ------------------------------------------------------------
> <span m:inject="s:forEach" m:items="#{xxxList}" m:var="e">
> <input type="submit" m:action="#{xxxAction.show}" value="show">
> <span m:inject="f:param" m:name="userId" m:value="#{e.id}"/>
> </input>
> </span>
> ------------------------------------------------------------
>
> 以下の条件を全て満たした場合に限り、f:paramの値が無視されるようです。
> ・forEachの子要素である (forEachの外であればOK)
> ・タグがinputである (aタグならOK)
> ・m:valueがVB式 (定数ならOK)
>
>
> Employee Exampleでも、employeeList.htmlの41行目付近、
> EditのAタグを以下のようにinputタグに変更すれば再現します。
>
> ------------------------------------------------------------
> <td><input type="submit" value="edit"
> m:action="#{employeeListAction.goNext}">
> <span m:inject="f:param" m:name="empno"
> m:value="#{e.empno}"/>
> <span m:inject="f:param"
> m:name="processMode" m:value="2"/>
> </input>
> ------------------------------------------------------------
>
>
> 本来できてもおかしくないと思うので、対応できないかな、と思っています。
> ダメならリンクに切り替えますが・・・。
>
>
> # いつもと違って、今日はちょっと自分でソースを見られそうにないです
> (^^;
>
> では。
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
https://www.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内