TLD ファイルの作成

TLD は、タグライブラリを記述する XML 形式のテキストファイルです。JRun では TLD ファイルを使用して、taglib ディレクティブを含んでいる、JSP 内のカスタムタグの動作を定義します。

taglib 要素は、TLD ファイルのルートです。次の表で、TLD ファイルに含まれているサブ要素について説明します。
taglib サブ要素
説明
tlibversion
タグライブラリのバージョン。
jspversion
オプション。タグライブラリに必要な JSP のバージョン。
shortname
デフォルトのショートネーム。
displayname
オプション。開発環境で使用するタグライブラリ名。
smallicon
オプション。タグライブラリを表す 16 × 16 ピクセルのアイコンへの相対パス。GUI 環境で使用。
largeicon
オプション。タグライブラリを表す 32 × 32 ピクセルのアイコンへの相対パス。GUI 環境で使用。
uri
オプション。タグライブラリを固有に識別する URI。
info
オプション。タグライブラリの使用情報。
tag
カスタムタグ情報。TLD ファイルは、1 つ以上の tag 要素を含むことができます。それぞれの tag 要素には、次のサブ要素が含まれています。
  • name カスタムタグ名。
  • tagclass タグハンドラのクラス名。
  • teiclass TEI ファイルのクラス名。
  • bodycontent 本文のコンテンツタイプを識別します。有効な値は、tagdependent (SQL ステートメントなどのタグ依存本文コンテンツ)、jsp (JSP および HTML 本文コンテンツ)、および empty (本文コンテンツ使用不可) です。empty を指定した場合、カスタムタグの本文は空です。
  • info オプション。カスタムタグ使用情報。
  • attribute オプション。属性情報。tag 要素は、attribute 要素を持つ場合と持たない場合があります。タグ内での属性の使用については、 「属性の使用」 を参照してください。
  • variable オプション。タグ要素内のスクリプト変数を定義します。詳細については、 「スクリプト変数の使用」 を参照してください。
listener
タグライブラリにイベントリスナを登録します。listener 要素は、listener-class サブ要素を指定する必要があります。イベントリスナの詳細については、弟 8 章、「アプリケーションのライフサイクルイベント」を参照してください。
validator
このタグの validator クラスを識別します。validator 要素には、次のサブ要素が含まれています。
  • validator-class 必須。タグライブラリを検証するクラスの完全修飾名。
  • init-params オプション。バリデータが使用する 1 つ以上の初期化パラメータを指定します。
  • description オプション。バリデータを記述します。
タグライブラリの検証の詳細については、 「タグライブラリの検証」 を参照してください。

taglib ディレクティブには、TLD ファイルを指定する uri 属性が含まれています。taglib ディレクティブの詳細については、 「タグライブラリの使用」 を参照してください。

カスタムタグは、TLD ファイル内で tag 要素とそのサブ要素によって定義します。tag 要素の主な目的は、JSP ファイルで使用されているカスタムタグ名をタグハンドラのクラスファイルに関連付けることです。JSP 1.1 仕様に記述されているメソッドを使用してカスタムタグでスクリプト変数を作成する場合は、そのタグの TEI クラスファイル名を指定する teiclass 要素を使用する必要もあります。詳細については、 「JSP 1.1 でのスクリプト変数の使用」 を参照してください。

tag 要素を使用して属性を定義することもできます。カスタムタグ属性の詳細については、 「属性の使用」 を参照してください。

TLD ファイルの例

次の TLD ファイルでは、 「簡単なタグハンドラのコーディング」 で示した SimpleTag クラスに対してタグを定義しています。

<?xml version="1.0" ?>
<taglib>
  <tlibversion>1.0</tlibversion>
  <jspversion>1.2</jspversion>
  <shortname>JRun Doc Samples</shortname>
  <tag>
    <name>hello</name>
    <tagclass>SimpleTag</tagclass>
    <bodycontent>JSP</bodycontent>
  </tag>
  <tag>
    <name>goodbye</name>
    <tagclass>SimpleTag</tagclass>
    <bodycontent>JSP</bodycontent>
  </tag>
</taglib>