ひがやすを技術ブログ

電通国際情報サービスのプログラマ

対応する(X)HTML標準タグのないUIコンポーネントの扱い

Shale ClayやS2JSFのようにJSFのUIコンポーネントを(X)HTMLタグにマッピングするフレームワークは対応する(X)HTML標準タグのないUIコンポーネントの扱いに問題。Shale Clayはclay-config.xmlで式言語によるUIコンポーネントへのデータマッピングとUIコンポーネントへのID付け、テンプレートでそのIDと(X)HTMLの要素との関連付けを行っているので、この問題を(X)HTMLの非UIタグ等に関連付けることでひとまず回避できる。

上記の文章を見ると、S2JSFが「対応する(X)HTML標準タグのないUIコンポーネントの扱い」ができないように見える人もいるかもしれませんが、そういうことはありません。m:injectタグを使えば、任意のUIコンポーネントを扱うことができます。
例えば、jsf.diconに


<component class="org.seasar.jsf.runtime.JsfConfigImpl">
<initMethod name="addTaglibUri">
<arg>"hoge"</arg>
<arg>"http://hoge"</arg>
</initMethod>
...
</component>
というように登録しておけば、hoge Taglibの任意のコンポーネントをm:inject="hoge:aaa"のように指定することができます。