JST とカスタムタグの比較

JST を使用すると Java のコーディングから解放されますが、JST ページをコーディングするには、基本的なカスタムタグの概念を認識している必要があります。次の表は、JST とカスタムタグハンドラの違いを要約したものです。
機能
カスタムタグハンドラ
JST
カスタムタグの実装
タグハンドラをコーディングし、TLD ファイルのタグ、TEI クラス、およびデプロイメントディスクリプタを定義します。
ファイルを .jst 形式で保存します。
呼び出しポイント
この機能を実装するには、doStartdoEnd、および doAfterBody メソッドを
コーディングします。
<tag method= "START|END| AFTER_BODY" %> ディレクティブにより制御される
メソッドの機能が、自動的に実装されます。他のメソッドは、宣言内でメソッドを Java でコーディングすることによって実装できます。
本文コンテンツとの対話
この機能を実装するには、BodyTagSupport クラスを
拡張し、doAfterBody メソッドをコーディングし、bodyContent 変数によって
本文テキストにアクセスします。
<%@ tag type="LOOPING|BUFFERED" %> ディレクティブをインクルードすることによって、このタイプの処理を実行します。
戻りコード
戻り定数を使用します。
returnCode という暗黙の
変数を使用します。
属性
TLD ファイルで各タグの属性を宣言します。
tagAttribute ディレクティブによって属性を宣言
します。
スクリプト変数
TEI クラスまたは TLD ファイルでスクリプト変数を宣言します。
tagVariable ディレクティブによってスクリプト変数を宣言します。また、isValid
メソッドを定義する宣言を
使用して、属性の検証を実行することもできます。

次の表は、Java ベースのカスタムタグハンドラと JSP で書かれたカスタムタグの違いを要約したものです。
Java ベースのカスタムタグハンドラ
JSP ベースのカスタムタグ
タグハンドラ Java ソースファイル
JSP シンタックスによる JST ファイル
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 クラスまたは TLD ファイルで
スクリプト変数を定義します。
<%@ tagVariable (id="id"|name="name")
type="type" 
scope="AT_BEGIN|AT_END|NESTED" %>

これらのトピックの詳細については、弟 11 章、「Java のカスタムタグ」を参照してください。

この章の後続のセクションでは、JST のコーディング開始に役立つ情報について説明します。