谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

s:insertにパラメタを渡したい。

insertついでに、もう一つ。


某先輩から「insertタグにパラメタを渡したいんだよねー、できるよね?」と
プレッシャー込み(笑)で質問されたので、ちょっと試してみた。


呼び出し側のHTML(抜粋)

<span m:inject="s:insert" m:src="hoge.html">
  <span m:inject="f:param" m:name="hoge" m:value="ほげ"/>
</span>


呼び出される側のHTML(抜粋)

<span m:inject="s:insert">
  <span m:value="#{hoge}"/>
</span>


JSPのincludeと同じように出来るかと思ったけど、甘かった。
呼び出し側のinsertタグは、m:src属性を持っていると、それ以上解釈されないみたい。


あ、いや、まてまて、
確か、これってできたっけ?

<span m:inject="f:param" m:name="hoge" m:value="ほげ">
  <span m:value="#{hoge}"/>
</span>

OK、できた。


ということは、
f:paramの子要素として、insertタグ入れるだけじゃない?

<span m:inject="f:param" m:name="hoge" m:value="ほげ">
  <span m:inject="s:insert" m:src="hoge.html"/>
</span>

できました。
以上、チーン。


あ、呼び出されたhoge.htmlのInitActionにも、ちゃんとf:paramの値が設定されるみたいですね。

  • InsertProcessor#processの中でInitActionを呼ぶように修正する(S2JSFでWebParts その5
  • hoge.htmlのinitActionに、setHoge(String hoge)を書いておく。

とすればOK。


なかなかやるな、f:param。
まぁ直書きしてるから、当然か。