-id問題

移動で乗った井の頭線の電車の中に、コーディングの神様がいました。ちょうど明大前につく手前です。忘れないように手に持っていた文庫本(司馬遼太郎「義経」下巻)のカバーに書き留めました。テンプレートのid問題、アイディア的に解決しました。
テンプレートにidを指定して、.mayaファイルのノードと結びつけるのは失いたくない機能です。idがHTMLの全タグに必ずある属性であることと、共通属性の中で識別子として一番自然なものであるためです。しかし、ループの中で生成されるタグやDHTMLとの引っ掛けでどうしても動的にIDを生成したい場合もあるでしょう。その際、以下のように書きます。

<tr m:mayaid="trID" id="${var}">
テキストボディ
</tr> 
<c:out mayaid="trID" value="" replace="false"/>

テンプレート中の「m:mayaid」はidより優先されて識別子として動作します。しかし、m:mayaidが無いときには、idをいままで同様に用いることとします。テンプレートや設定XMLにm:idと書くとよさそうですが、これはNGです。テンプレートに書くときにはどういう意味になるかというと、インジェクションするテンプレートプロセッサへの属性設定とぶつかります。id属性をもつJSPカスタムタグ等もあるわけです。同じ値をせっていする場合は良いのですが、違う値を設定したくてもできません。同じ理由で設定XMLに書く場合は、強制でmayaidとします。設定XMLでは名前空間を省略するとhtttp://www.seasar.org/mayaとするためです。