カスタムタグとタグライブラリの概要

JavaServer Pages の仕様書には、タグライブラリに関するフレームワークが記述されています。タグライブラリでは、JSP プログラマ用のタグの作成に使用できる強力な機能が提供されます。

タグライブラリは、タグまたはカスタムタグと呼ばれる 1 つ以上のアクションから構成され、関連する Java タグハンドラクラスでコーディングされている処理が、それぞれのタグによって実行されます。

Java 開発者は、各カスタムタグの機能 (属性を含む) を定義し、タグハンドラをコーディングし、さらにタグライブラリディスクリプタ (TLD) ファイルで各カスタムタグを定義します。TLD ファイルでは、タグへの本文のビルトイン可能性や必須属性など、その他の情報も定義します。JSP 開発者は、タグハンドラクラスへのポインタを JSP に含め、そのタグを JSP タグであるかのように使用します。

アプリケーションデプロイ担当者は、web.xml、TLD、および TEI (Tag Extra Information) ファイルを使用して、Web アプリケーションにおけるタグの動作を設定します。

タグの基本

タグの基本的な構造は、JSP ページで使用される HTML 構成として理解する必要があります。次の 3 行は、HTML 仕様の一部であるタグを示しています。

<A HREF="http://www.hamsteak.com">
 ホームページに移動するには、ここをクリックしてください。
</A>

1 行めは開始タグ (<A>) を示し、タグの動作を設定する属性がオプションで含まれています(この場合、属性は HREF です)。2 行めは、タグでラップするテンプレートまたは本文を示しています。このテキストはタグの本文と呼びます。3 行めは終了タグを示しています。これは開始タグに似ていますが、終了スラッシュがあり、属性を含みません。

タグの中には本文を持たないものもあります。これらはスタンドアローンタグと呼びます。スタンドアローンタグの例には、<IMG><HR> タグがあります。スタンドアローンタグを閉じるには、次の例のように、左不等号の前にスペースとスラッシュを追加します。

<HR />
<IMG SRC="gaffer.gif" width=100 height=100 />
<HR />

スタンドアローンタグには本文がないので、空のタグと呼ばれることもあります。

タグライブラリの利点

システムデザイナーは、タグライブラリを使用して Web アプリケーションのデザインパターンを実装することがよくあります。これによって、開発者は JSP での制限を決め、JSP からビジネスロジックを抽出し、ヘルパークラスに挿入することができます。また、JSP プログラマが理解しやすいページレベルのプログラムを作成します。

タグライブラリの利点は次のとおりです。

Java 開発者と JSP 開発者とでは、カスタムタグライブラリとの対話が次のように異なります。

カスタムタグライブラリの例

タグの中には、Web アプリケーションの JSP コンポーネントのデザインパターンを実行するために使用されるものがあります。それ以外のタグは、多くのスクリプトレットコードに必要な複雑なオペレーションを単純化するために使用されます。独自のカスタムタグを作成する前に、他の開発者が作成したタグライブラリの使用を検討してください。一般的な機能の多くは、カスタム JSP タグとして既に実装されています。

次の表で、既存のカスタムタグライブラリの例を説明します。
タグライブラリ
説明
JSP 標準タグライブラリ (JSTL)
JSTL は、JSP で使用するためのカスタムタグのコアセットを提供します。このライブラリには、データベースへのアクセス、XML ドキュメントの処理、JSP の国際化対応を行うためのタグが含まれています。
詳細については、http://java.sun.com/products/jsp/taglibraries.html をご覧ください。
JRun タグライブラリ
JRun タグライブラリは本来 JRun 3.0 で出荷されています。このライブラリはあまり使用されていませんが、JSTL に影響を与えた多くのタグを提供します。
Struts タグライブラリ
一般的な MVC (Model-View-Controller) デザインパターンを実装するためのタグを提供するカスタムタグライブラリです。
詳細については、http://jakarta.apache.org/struts/index.html をご覧ください。
JRun での Struts の使用方法の詳細については、 「Struts について」 を参照してください。
Dreamweaver UltraDev のカスタムタグライブラリエクステンション (CTLX)
CTLX は、UltraDev デザイン環境でカスタムタグライブラリを使用するための機能を提供します。
詳細については、http://jakarta.apache.org/taglibs/doc/ultradev4-doc/index.html をご覧ください。
Regexp
JSP で Perl 正規表現シンタックスをエミュレートするタグを提供します。詳細については、http://jakarta.apache.org/taglibs/doc/regexp-doc/intro.html をご覧ください。

多くのオープンソースタグライブラリの詳細およびリンクについては、次のリソースを参照してください。