Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)


2.3.4 タグライブラリのJ2EEアプリケーションへの格納

アプリケーションサーバでは,タグライブラリをJ2EEアプリケーションに格納し,JSPから使用できます。

J2EEアプリケーションに格納されたタグライブラリをJSPから使用する方法は,JSPをJ2EEサーバでコンパイルするかcjjspcコマンドでコンパイルするかによって異なります。

J2EEサーバでJSPをコンパイルする場合

タグライブラリをライブラリJARに格納する。

cjjspcコマンドでJSPをコンパイルする場合

タグライブラリをクラスパスに指定したJARファイルに格納する。

それぞれの方法について説明します。

〈この項の構成〉

(1) J2EEサーバでJSPをコンパイルする場合

タグライブラリをライブラリJARに格納することで,JSPから使用できます。

(a) TLDファイルの検索

タグライブラリをライブラリJARとしてJ2EEアプリケーションに格納した場合,web.xmlの<taglib>要素でTLDファイルを指定できません。この場合,JSPファイルのtaglibディレクティブのuri属性で,TLDファイルの<uri>要素に指定されたURIを指定してください。Webアプリケーション開始時に,ライブラリJARに格納されたTLDファイルがWebコンテナによって検索され,TLDファイルの<uri>要素に記述されたURIとそのTLDファイル自身がマッピングされます。

なお,<uri>要素がない場合はURIとそのTLDファイル自身はマッピングされません。

ライブラリJAR内のTLDファイルのマッピングは最も優先順位が低いマッピングです。ライブラリJAR内のTLDファイルのマッピングの優先順位については,「8.2.6(7) taglibディレクティブのuri属性で指定するURIとTLDファイルのマッピングについて」を参照してください。

JSPファイルでは,taglibディレクティブのuri属性でURIを指定することでタグライブラリを使用できます。

(b) ライブラリJARに格納する場合に使用できるタグライブラリの機能

タグライブラリをライブラリJARに格納する場合に使用できるタグライブラリの機能は,カスタムタグおよびリスナです。

タグファイルは使用できません。JSPファイルまたはタグファイルで,ライブラリJARに格納されたタグファイルを使用した場合,ライブラリJARに格納されたTLDファイルの<tag-file>要素が無視されます。そのため,タグファイルが存在しないと見なされて,JSPトランスレーション時にトランスレーションエラーとなります。

(2) cjjspcコマンドでJSPをコンパイルする場合

JARファイル内のタグライブラリをcjjspcコマンドの-classpathオプションでクラスパスに指定することで,WebアプリケーションのWEB-INF/libディレクトリ以外に配置したタグライブラリをJSPから使用できます。

(a) TLDファイルの検索

クラスパスに指定したJARファイルに含まれるTLDファイルが自動的に検出され,TLDファイルの<uri>要素で指定したURIとそのTLDファイル自身がマッピングされます。

クラスパスに指定したJARファイル内のTLDファイルのマッピングは最も優先順位が低いマッピングです。クラスパスに指定したJARファイル内のTLDファイルのマッピングの優先順位については,「8.2.6(7) taglibディレクティブのuri属性で指定するURIとTLDファイルのマッピングについて」を参照してください。

(b) クラスパスに指定したJARファイルに格納する場合に使用できるタグライブラリの機能

タグライブラリをクラスパスに指定したJARファイルに格納する場合に使用できるタグライブラリの機能は,カスタムタグおよびリスナです。

タグファイルは使用できません。JSPファイルまたはタグファイルで,クラスパスに指定したJARファイルに格納されたタグファイルを使用した場合,JARファイルに格納されたTLDファイルの<tag-file>要素が無視されます。そのため,タグファイルが存在しないと見なされて,JSPトランスレーション時にトランスレーションエラーとなります。