forEach + insertの組み合わせで、
insertのm:srcに式言語を使えない問題について。
S2のMLには投稿したんだけど、その原因が、だいたい分かった。
平たく言うと、
forEachタグがレンダリングされる(繰り返し処理が行なわれる)より前に、insertタグが解釈されるから。
forEachタグって、Collection(m:items)の要素を1つずつrequestに格納しながら
子要素をレンダリングしてるんだけど、そもそも、insertタグのm:srcが解釈されるのは、その前なのよね。
だから、m:srcにはforEachが処理する値を入れられない。
S2JSF側で対策を取るとしたら、
- insertタグの解釈のタイミングを遅らせる(processメソッド相当の処理をレンダリング時に行なう)
- forEachの繰り返し処理のタイミングを早める(processのタイミングで繰り返し処理を行なう)
になるかと思うけど、ちょっと既存システムに影響出そうな変更になりそう、、、。
そういや、JSF(JSP)のincludeって、どうしてるんだっけ、
と思って調べてみたら、式言語には非対応だった (^^;;
うーん、動的にinsert/includeする事自体、無茶な希望なのかなと思い始めてきた。
自前でdynamicInsertタグなんかを作るべきか?