ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server JSPタグ拡張の開発
12c (12.1.2)
E48080-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

2 カスタムJSPタグの概要と作成

この章では、カスタムJSPタグの機能、フォーマット、およびコンポーネントの概要、ならびにタグ・ライブラリの作成と構成の手順について説明します。

この章の内容は以下のとおりです。

タグ・ハンドラのAPIおよび実装

カスタムJSPタグを作成するには、タグ・ハンドラと呼ばれるJavaクラスを作成します。

JSP 2.1 APIには、JSP 2.1仕様での説明どおりhttp://java.sun.com/products/jsp/reference/api/index.htmlで、カスタム・タグ・ハンドラの作成に使用するクラスとインタフェースのセットが説明されます。

javax.servlet.jsp.tagext APIに関するドキュメントは、http://docs.oracle.com/docs/cd/E17802_01/products/products/jsp/2.1/docs/jsp-2_1-pfd2/index.htmlにあります。

タグ・ハンドラは、次の2つのタイプのどちらかである必要があります。

タグ・ハンドラは、以下のいずれかの方法で作成します。

抽象ベース・クラスを拡張すると、タグ・ハンドラ・クラスがそのインタフェース内のすべてのメソッドを実装する必要がなくなります。また、他の便利な機能を使用できるようになります。SimpleTagSupportTagSupport、およびBodyTagSupportクラスが、SimpleTagTag、またはBodyTagインタフェースを実装し、APIに組み込まれます。

タグ・ライブラリには、1つ以上のカスタムJSPタグを格納することができます。タグ・ライブラリは、タグ・ライブラリ記述子(.tld)ファイルで定義します。TLDは各タグの構文を記述し、その機能を実行するJavaクラスにそのタグを関連付けます。

カスタム・タグ・ライブラリ

JSPタグ・ライブラリは、1つ以上のカスタムJSPタグを格納しており、タグ・ライブラリ記述子(.tld)ファイルで定義されます。JSPページからカスタム・タグ・ライブラリを使用するには、以下のように<%@ taglib %>ディレクティブを使用してそのタグ・ライブラリ記述子を参照します。例:

<%@ taglib uri="myTLD" prefix="mytaglib" %>

詳細は、第3章「タグ・ライブラリ記述子の作成」を参照してください。

カスタム・タグのフォーマット

カスタム・タグのフォーマットは、空タグと呼ばれる空のものか、本体付きタグと呼ばれる本体を含むものです。どちらのタイプのタグも、そのタグを実装するJavaクラスに渡される複数の属性を受け付けます。詳細は、「タグ本体内の例外処理」を参照してください。

空タグの形式は次のとおりです。

<mytaglib:newtag attr1="aaa" attr2="bbb" ... />

本体付きタグの形式は次のとおりです。

<mytaglib:newtag attr1="aaa" attr2="bbb" ... >
  body
</mytaglib:newtag>

タグ本体には、多くのJSP構文、およびネストされた本体を持つ別のカスタムJSPタグを入れることができます。タグは、お互いの内部で任意のレベルにネストできます。例:

<mytaglib:tagA>
   <h2>This is the body of tagA</h2>
   You have seen this text <mytaglib:counter /> times!
  <p>
  <mytaglib:repeater repeat=4>
     <p>Hello World!
  </mytaglib:repeater>
</mytaglib:tagA>

上の例では、3つのカスタム・タグを使用して、本体付きタグの中にタグをネストする方法が示されています。これらのタグは、以下のように機能します。

カスタム・タグの機能

カスタム・タグは、以下のタスクを実行できます。

JSPタグ・ライブラリの作成と構成:手順の例

カスタムJSPタグを作成および使用するには、以下の手順を実行します。

  1. タグ・ハンドラ・クラスを記述します。JSPでカスタム・タグを使用する場合、このクラスはそのタグの機能を実行します。タグ・ハンドラ・クラスでは、次の3つのインタフェースのいずれかが実装されます。

    javax.servlet.jsp.tagext.BodyTag
    javax.servlet.jsp.tagext.Tag
    javax.servlet.jsp.tagext.SimpleTag
    

    タグ・ハンドラ・クラスは、タグ・ライブラリの一部として実装されます。詳細は、第4章「タグ・ハンドラの実装」を参照してください。

  2. JSPソース内で、JSP <taglib>ディレクティブを使用してタグ・ライブラリを参照します。タグ・ライブラリは、JSPタグを集めたものです。このディレクティブをJSPソースの先頭に挿入します。詳細は、「JSPタグ・ライブラリの構成」を参照してください。

  3. タグ・ライブラリ記述子(TLD)を記述します。TLDは、タグ・ライブラリを定義し、タグ・ハンドラ・クラス名、属性、タグに関するその他の情報など、各タグに関する追加情報を提供します。詳細は、第3章「タグ・ライブラリ記述子の作成」を参照してください。

  4. TLDを、Webアプリケーション・デプロイメント記述子(web.xml)で参照してください。

  5. JSPでカスタム・タグを使用します。詳細は、「JSPタグ・ライブラリの構成」を参照してください。