JRun によるアプリケーションの開発
|
|
JSP でのカスタム タグの作成
|
カスタム タグの概念
JST を使用すると Java のコーディングから解放されますが、JST ページをコーディングするには、基本的なカスタム タグの概念を認識している必要があります。
- タグのコーディング JSP 開発者はカスタム タグの開始タグと終了タグの両方をコーディングします。終了タグでは、短縮された構文 (例 :
<foo:header/>
) またはスタンドアロン終了タグ (例 : <foo:header></foo:header>
) のいずれかを使用できます。カスタム タグを使用すると、開始タグと終了タグとの間に本文テキストを入れて本文テキストと対話できます。
- 呼び出しポイント タグ ハンドラは開始タグと終了タグを使用して呼び出すことができます。また、本文テキストにもアクセスできます。Java ベースのカスタム タグ ハンドラでこの機能を実装するには、
doStart
、doEnd
、および doAfterBody
メソッドをコーディングします。JST によって、
<tagmethod="START|END|AFTER_BODY" %>
ディレクティブによって制御される 1 つのメソッドの機能が自動的に提供されます。ほとんどのカスタム タグでは、doEnd
メソッドだけを使用するので、既定値は doEnd
です。ほかのメソッドは、宣言内でメソッドを Java でコーディングすることによって実装できます。
- 本文コンテンツとの対話 タグ ハンドラでは本文コンテンツの処理、ループ化、または変更が可能です。Java ベースのカスタム タグ ハンドラでこの機能を実装するには、
BodyTagSupport
クラスを拡張し、doAfterBody
メソッドをコーディングし、bodyContent
変数によって本文テキストにアクセスします。JST では、
<%@ tag type="LOOPING|BUFFERED" %>
ディレクティブを含めることによって、このタイプの処理を実行できます。
- 戻りコード 各メソッドは戻り値を使用して続行方法を示します。Java ベースのカスタム タグ ハンドラでは定数を返します。JST では、暗黙の
returnCode
変数を使用してこれらの同じ定数を返します。
- 属性 JSP は属性をカスタム タグに渡すことができます。Java ベースのカスタム タグでは、TLD ファイルで各タグの属性を宣言します。JST では、
tagAttribute
ディレクティブによって属性を宣言します。
- スクリプト変数 カスタム タグではスクリプト変数を作成できます。Java ベースのカスタム タグでは、TEI クラスでスクリプト変数を宣言します。JST では、
tagVariable
ディレクティブによってスクリプト変数を宣言します。また、
isValid
メソッドを定義する宣言も使用して属性の検証を実行することもできます。
次の表は、Java ベースのカスタム タグ ハンドラと JSP で書かれたカスタム タグの違いを要約したものです。
Java ベースのカスタム タグ ハンドラ |
JSP ベースのカスタム タグ |
タグ ハンドラ Java ソース ファイル
|
JSP ファイル
|
doStartTag メソッド
|
<%@ tag method="START" %>
|
doEndTag メソッド
|
<%@ tag method="END" %>
|
doAfterBody メソッド
|
<%@ tag method="AFTER_BODY" %>
|
TagSupport クラスから継承します。
|
<%@ tag type="TAG" %>
|
BodyTagSupport クラスから継承します。
|
<%@ tag type="LOOPING|BUFFERED" %>
|
タグ ハンドラ内に複数のメソッドを実装します。
|
最初のメソッドは、
<% tag method="method-type" %> を使用して実装します。その他のメソッドは、宣言に囲まれた Java ベースのメソッドを使用して実装します。
|
TLD ファイルで属性を定義します。
|
<%@ tagAttribute name="name"
type="type"
required="true|false"
rtexpr="true|false"
setter="true|false"
default="default attribute value" %>
|
TEI クラスでスクリプト変数を定義 します。
|
<%@ tagVariable (id="id"|name="name")
type="type"
scope="AT_BEGIN|AT_END|NESTED" %>
|
これらのトピックの詳細については、Chapter 22, "カスタム タグとタグ ライブラリの作成"を参照してください。
この章の後のセクションでは、JST のコーディングを開始するための情報について説明します。
Copyright © 2001, Macromedia Inc. All rights reserved. |
|