WebLogic JSP Tag Extensions プログラマーズ ガイド
![]() |
![]() |
![]() |
![]() |
JSP 1.1 仕様には、JavaServer Pages (JSP) ページでカスタム タグを作成および使用するための機能が導入されました。カスタム タグは、Web ページ作成者が使いやすく管理しやすいように、Web ページのプレゼンテーションからビジネス ロジックの複雑さを分離するための優れた方法です。JSP ページでカスタム JSP タグ拡張を使用すると、動的コンテンツを生成できます。また、さまざまな Web 開発ツールを使用して、プレゼンテーションを作成できるようになります。
WebLogic Server は、「JSP 1.1 仕様」に定義されているタグ拡張メカニズムを完全にサポートしています。
カスタム JSP タグを作成するには、タグ ハンドラと呼ばれる Java クラスを作成します。タグ ハンドラは、以下のいずれかの方法で作成します。
Tag
または BodyTag
インタフェースを実装する。Tag
または BodyTag
インタフェースを実装する抽象基本クラスを拡張する。 抽象基本クラスを拡張すると、タグ ハンドラ クラスがそのインタフェース内のすべてのメソッドを実装する必要がなくなります。また、他の便利な機能を使用できるようになります。TagSupport
クラスと BodyTagSupport
クラスが Tag
または BodyTag
インタフェースを実装し、API に組み込まれます。
1 つまたは複数の JSP タグをタグ ライブラリに登録することができます。タグ ライブラリは、タグ ライブラリ記述子 (TLD) ファイルによって定義されます。TLD は各タグの構文を記述し、その機能を実行する Java クラスにそのタグを関連付けます。
id
属性を備えた動的名前付きスクリプト変数を定義できます。カスタム タグのフォーマットは、空タグと呼ばれる空のものか、本体付きタグと呼ばれる本体を含むものです。どちらのタイプのタグも、そのタグを実装する Java クラスに渡される複数の属性を受け付けます。詳細については、「タグ本体内の例外処理」を参照してください。
<mytaglib:newtag attr1="aaa" attr2="bbb" ... />
<mytaglib:newtag attr1="aaa" attr2="bbb" ... >
body
</mytaglib:newtag>
タグ本体には、多くの JSP 構文、およびネストされた本体を持つ別のカスタム JSP タグを入れることができます。タグは、お互いの内部で任意のレベルにネストできます。次に例を示します。
<mytaglib:tagA>
<h2>これは tagA の本体です</h2>
このテキストはこれまでに <mytaglib:counter /> 回現れました!
<p>
<mytaglib:repeater repeat=4>
<p>Hello World!
</mytaglib:repeater>
</mytaglib:tagA>
上の例では、3 つのカスタム タグを使用して、本体付きタグの中にタグをネストする方法が示されています。これらのタグは、以下のように機能します。
<mytaglib:tagA>
は、その評価済み本体からの HTML 出力しか認識しない。つまり、ネストされた JSP タグの <mytaglib:counter>
と <mytaglib:repeater>
がまず評価され、それらの出力が <mytaglib:tagA>
タグの評価済み本体の一部になります。以下のシナリオに、カスタム タグを使用して何ができるかを示します。
JSP タグ ライブラリは、タグ ライブラリ記述子 (tld)
によって定義されます。JSP ページからカスタム タグ ライブラリを使用するには、<%@ taglib %>
ディレクティブを使用してそのタグ ライブラリ記述子を参照します。以下に例を示します。
<%@ taglib uri="myTLD" prefix="mytaglib" %>
JSP エンジンでは、この uri
属性と Web アプリケーション デプロイメント記述子 (web.xml)
の <taglib-uri>
要素に定義された uri
を照合することによって、タグ ライブラリ記述子ファイルを見つけようとします。たとえば、上の taglib
ディレクティブの myTLD
は、次のように Web アプリケーション デプロイメント記述子のタグ ライブラリ記述子 (library.tld)
を参照します。
<taglib>
<taglib-uri>myTLD</taglib-uri>
<taglib-location>library.tld</taglib-location>
</taglib>
詳細については、「タグ ライブラリ記述子の作成」を参照してください。
![]() ![]() |
![]() |
![]() |