-最重要属性inject

さて、ひがさんのコメントで霧が晴れたので仕様変更。たしかにMayaでこれまでid属性に割り当てた機能は、識別子ではなく、インジェクションの機能です。これまではこういう書き方でした。

1)これまでのやりかた:
<span id="firstName@c:out">出力</span>
<span id="#remove">削除</span>

このidには、識別子(firstName)+プレフィックス(c)+コンポーネントタイプ(out)が入ってます。これを識別子は識別子として、その他のインジェクション情報とわけると、

2)あたらしい案:
<span id="firstName" inject="c:out">出力</span>
<span inject="#remove">削除</span>
3)さらにinjectを細かくやると:
<span id="firstName" prefix="c" component="out">出力</span>

うーん、手間と意味のバランス考えると、真ん中のinject属性採用案かな。プリプロセッサ的には一番最後が明瞭なのでしょうが。
で、injectの例で話をすすめます。

テンプレート:
<span id="firstName">出力</span>
バインディング情報を外だしした設定XML:
<component id="firstName" inject="c:out"/>

となります。
ちなみに、万一、injectという名前の属性をもったJSPコンポーネントがあったとしたら、設定XMLを使ってください。

<component id="firstName" inject="x:hasInjectParamComp">
  <binding name="inject" value="#{model.value}"/>
</component>

というところで、例を書いているうちにparameterの属性を書くのが面倒になってきました。type属性は省略するとjava.lang.String、evalは省略するとコンポーネントがあらかじめ設定されている(JSFのcoreとhtmlを予定)ライブラリ所属だと、false、そうでないとtrueを設定することにします。