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" %>