<%@taglib%>
JSP 1.0 以降
説 明
JSP で拡張タグライブラリを使用するためのディレクティブです。
サーブレットコンテナでは独自の機能を持った拡張タグを作成して JSP 内で使用することが出来ます。 この JSP で使用する拡張タグの定義 (TLD) はどこに定義されているか、また、JSP 内でそのタグを 識別するプレフィクスは何かをこのディレクティブで指定します。
属 性
required
JSP 内でこの拡張タグを識別するためのプレフィクス (接頭辞) です。 同じ JSP 内で使用する別の拡張タグライブラリとバッティングしなければ好きな名前を付けることが出来ます (読みやすさの観点から JSTL, Struts など広く使われているライブラリのプレフィクスとは別にして おいたほうが無難です)。
selective required 1
拡張タグライブラリの TLD (Tag Library Descriptor) ファイルの場所を指定します。
実在する TLD ファイルの URI を指定するか、web.xml の <taglib-uri>
で定義した URI を指定します。
また META-INF/taglib.tld にタグライブラリの定義を含む JAR ファイルのパスを
指定することも出来ます (未確認情報)。
使用例
JSP で JSTL の Core タグライブラリを使用できるようにします。JSP からは
上記を直接 TLD ファイルを参照する形式に書き換えても同じ動作になりますが、
多くの JSP から参照される TLD は直接記述しない方がファイルの配置場所を変更
しやすくなります。
web.xml
で定義した URI を使用しています (その TLD ファイルが実際はどこにあるかは
web.xml で定義します)。
JSP
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
1 + 1 := <c:out value="${1 + 1}" />
web.xml
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
JSP
<%@ taglib prefix="c" uri="/WEB-INF/tld/c.tld" %>
1 + 1 := <c:out value="${1 + 1}" />
web.xml の <taglib-uri> は TLD の保存場所のエイリアスのようなものです。
既存の JSP を変更しないで保存場所を整理したい場合などにも使用できます。
JSP
<%@ taglib prefix="c" uri="/WEB-INF/tld/c.tld" %>
1 + 1 := <c:out value="${1 + 1}" />
web.xml
<taglib>
<taglib-uri>/WEB-INF/tld/c.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/jstl/c.tld</taglib-location>
</taglib>
<taglib-uri> にグローバルな URL を指定しても、TLD ファイルを
その URL でアクセス可能にしておく必要はありません。この URL は XML スキーマや
Java のパッケージと同様に、名前空間の区別に利用しているだけです。