-Taglib

新しい版から、Taglibマジックカスタムタグは追放されました。というか、マジックカスタムタグという概念が追放されたのです。説明が難しいのですが。。。エンジンの柔軟度合いは当社比150%です。下の例にもあるように、xmlns:*="***"という名前空間宣言の記法でTaglibへのプレフィックスマッピングをやります。また、XHTMLでの普通な名前空間宣言も有効ですし、ImplicitPageはユニークな見え方になります。

<?xml version="1.0" encoding="ISO-8859-1"?>
<maya xmlns:x="/WEB-INF/implicit">
    <x:implicitpage.html mayaID="implicit"/>
</maya>

上記は動くサンプルの一部です。「x:implicitpage.html」がエレメント名になっているところがユニークだと思います。「xmlns:x="/WEB-INF/implicit"」がJSP2.0で翻訳すると、<%taglib prefix="x" tagdir="/WEB-INF/implicit"%>となります。この機能を実装する上での光るアイディアだと思うものは、XML名前空間はURLを書くのが普通だけど、アレは単なる文字識別でしかないということです。識別子としてどんな文字列でもXMLの仕様としてOKだということです。Mayaは基本のエンジンでは名前空間をキチンとノードに保存するということしかしていませんが、テンプレートプロセッサとそのレゾルバの対が容易にアクセスできる名前空間情報をもとに様々な解釈をする余地をつくりました。Taglibディレクティブの類似機能を名前空間に持たせているのは、maya-standardのTagProcesserResolverが勝手にやってます。