JST を使用するには、拡張子 .jst を持つ JSP ファイルを保存します。JRun では、ページを、end タグで呼び出されるカスタムタグとして処理します。これによって、コードの再利用に便利なメカニズムを提供します。ただし、JST テクノロジーには、JSP の仕様書に概説されている次の機能があります。
JSP でカスタムタグを作成するには、JSP の標準的なディレクティブについて、修正されたシンタックスまたは新しいシンタックスを使用する必要があります。次のセクションでは、新しいシンタックスについて説明します。
tag ディレクティブを使用して、次のタイプの情報を宣言します。
begin タグで呼び出されるか、end タグで呼び出されるか、または本文コンテンツを反復した後で呼び出されるかを指定します。method 属性を持つ tag ディレクティブを指定します。
type 属性を持つ tag ディレクティブで指定します。
JST がいつ呼び出されるかを示すには、method 属性を持つ tag ディレクティブをコーディングします。次のシンタックスを使用します。
<%@ tag method="method" %>
次の表で、tag ディレクティブ内の method 属性の値について説明します。
tag ディレクティブはオプションです。デフォルトは END です。
メソッドおよび戻りコードの詳細については、JSP の仕様書または 弟 11 章、「Java のカスタムタグ」を参照してください。
JST が本文コンテンツと対話するかどうかを示すには、type 属性を持つ tag ディレクティブをコーディングします。次のシンタックスを使用します。
<%@ tag type="type" %>
<%@ tag method="AFTER_BODY" %> を指定するときに、このディレクティブをコーディングします。
JST ページに渡される属性を定義するには、次のシンタックスを使用して tagAttribute ディレクティブをコーディングします。
<%@ tagAttribute name="name" type="class" required="true|false"
rtexpr="true|false" setter="true|false"
default="default attribute value" %>
次の表で、tagAttribute ディレクティブの属性について説明します。
次の例は、handle という名前の属性の宣言を示しています。
<%@ tagAttribute name="handle" type="String" required="true" rtexpr="true" %>
この tagAttribute ディレクティブによって、JST ページで次の処理が実行されます。
handle と呼ばれる専用のインスタンス変数を作成します。
setHandle(java.lang.String) と呼ばれるメソッドを作成します。TagLibraryInfo.getTag メソッドによって返される TagInfo オブジェクトに属性を組み込みます。
スクリプト変数は、ユーザーがページをリクエストする際に JSP で使用できる変数です。スクリプト変数は、宣言、スクリプトレット、または式で利用できます。JST でスクリプト変数を定義するには、tagVariable ディレクティブをコーディングします。次のシンタックスを使用します。
<%@ tagVariable (id="attribute"|name="name") type="class" scope="scope" %>
次の表で、tagVariable ディレクティブの属性について説明します。
scope 属性を使用する際の追加事項については、JSP 1.1 のメソッドを使用している場合は 「TEI クラスのコーディング」 、JSP 1.2 のメソッドを使用している場合は 「JSP 1.2 でのスクリプト変数の使用」 を参照してください。
次の例では、tagVariable ディレクティブを使用して、filename という名前のスクリプト変数を作成します。この変数は、タグの本文内と、JSP の残りの部分で使用できます。
<%@ tagVariable name="filename" type="String" scope="AT_BEGIN" %>
JST を使用する JSP をコーディングするときは、Java ベースのカスタムタグを使用する JSP のコーディングの場合と同様に、必要なのは taglib ディレクティブを指定することです。唯一の違いは、uri 属性で、JAR ファイルの名前ではなく、.jst ファイルが保存されているディレクトリを指定することです。
<%@ taglib prefix="prefix" uri="directory_containing_jst_pages" %>
次の表で、taglib ディレクティブの属性について説明します。
| 属性 |
説明 |
|---|---|
prefix |
必須。JSP 開発者が、 uri 属性で指定されたディレクトリから JST を呼び出すときに使用する接頭辞を指定します。 |
uri |
必須。JST ページが含まれているディレクトリの名前を指定します。これは Web アプリケーションのルートを基にしています。 |
次の例は、myjst という接頭辞を使用して、JST ページが web_app_root/jstdir ディレクトリにあることを指定します。
<%@ taglib prefix="myjst" uri="/jstdir" %>