-タグライブラリの宣言

インジェクションするカスタムタグは、その所属するJSPタグライブラリをあらかじめ宣言していなければいけません。JSPタグライブラリの宣言は、Maya設定XML中にtaglibエレメントを記述することで行われます([list.3] hello.maya)。
<taglib prefix="c" url="http://java.sun.com/jstl/core"/>
taglibエレメントは、prefix属性とurl属性を持ちます。それぞれ、JSPタグライブラリのプレフィックス設定およびURL設定と同等です。サンプルのurl属性値である「http://java.sun.com/jstl/core」は、JSTLのcoreタグライブラリを指しています。Mayaはこのurl属性値より、適切なTLD(Tag Library Discriptor)を探し、ロードします。見つからない場合は実行時例外を送出します。見つかったTLDはカスタムタグのインジェクションを行う際に、実際に利用するカスタムタグ実装クラスとそのパラメータの詳細を取得するために用いられます。
prefix属性はロードされたTLDの名前空間識別子を指定するために用います。サンプルでは「c」を設定しています。そのため、ロードしたJSTL coreタグライブラリのカスタムタグ群は、c:とプレフィックスをつけて指定します。先に説明したカスタムインジェクションの際に、tagエレメントのinject属性値において、「c:out」と指定していたのはこのtaglib設定によりプレフィックスを「c」と定義していたためです。
HTMLテンプレート中でタグライブラリを宣言する際には、カスタムタグのインジェクションと似た方法で行われます([list.5] hello2.html)。
<meta inject="#taglib" prefix="c" url="http://java.sun.com/jstl/core">
HTMLテンプレート中の任意のタグに「inject="#taglib"」と記述することによって、Maya設定XMLのtaglibエレメント同等の設定を記述するホストタグとなります。Mayaではinject属性値に「#」で始まる予約語を指定すると特別な動作が行われるようになっています。この予約語が設定されたホストタグを、「マジックタグ」と呼ぶことにします。設定XML中のtaglibエレメントに記述したprefix属性およびurl属性は、カスタムタグインジェクションにおけるカスタムタグパラメータと同様に、HTMLテンプレートのホストタグ内にそのまま記述します(マジックタグパラメータ)。