Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)
JSP仕様では,JSPをコンパイルする際に次のクラスを暗黙にインポートします。
page/tagディレクティブのimport属性暗黙インポート機能を使用すると,上記のクラス以外の任意のクラスを暗黙にインポートできます。
ここでは,page/tagディレクティブのimport属性暗黙インポート機能の指定方法について説明します。page/tagディレクティブのimport属性暗黙インポート機能は,J2EEサーバでJSPをコンパイルする場合,またはcjjspcコマンドでJSPをコンパイルする場合に使用できます。
暗黙にインポートしたいクラスは,完全修飾名のクラス名,または「パッケージ名.*」で指定します。複数のクラス名を指定する場合は,クラス名とクラス名の間をコンマ(,)で区切って指定してください。存在しないクラス名や,クラスパスに誤りがあるクラス名などを指定した場合は,JSPコンパイル時にKDJE39143-Eのメッセージが出力されます。
JSPコンパイル時に,javaファイルに出力されるインポート文の順番を次に示します。
page/tagディレクティブのimport属性暗黙インポート機能は,JSPコンパイル時に動作します。cjjspcコマンドでJSP事前コンパイルした場合,JSP事前コンパイルしたWebアプリケーションに対して,簡易構築定義ファイルのwebserver.jsp.additional.import.listキーに指定したクラスは暗黙にインポートされません。そのため,cjjspcコマンドでJSP事前コンパイルする場合に,page/tagディレクティブのimport属性暗黙インポート機能を使用するときは,cjjspcコマンドに-addimportオプションを指定してWebアプリケーションをJSP事前コンパイルしてください。
簡易構築定義ファイルのwebserver.jsp.additional.import.listキーに指定したクラスは,cjjspcコマンドでJSP事前コンパイルされていないJ2EEサーバ内のすべてのWebアプリケーションに対して有効になります。Webアプリケーションごとに異なるクラスを指定したい場合は,cjjspcコマンドに-addimportオプションを指定してWebアプリケーションをJSP事前コンパイルしてください。
次の条件をすべて満たす場合は,再コンパイル時にKDJE39143-Eのメッセージが出力されます。そのため,cjjspcコマンドに-addimportオプションを指定してJSP事前コンパイルしたWebアプリケーションを使用する場合は,簡易構築定義ファイルのwebserver.jsp.additional.import.listキーにcjjspcコマンドの-addimportオプションに指定したクラス名と同じクラス名を指定してください。
page/tagディレクティブのimport属性暗黙インポート機能で指定したクラス名と,JSP仕様で規定されたインポート対象のパッケージ内のクラス名やpage/tagディレクティブのimport属性に指定されたクラス名が重複する場合,JSPコンパイル時にコンパイルエラーとなり,KDJE39143-Eのメッセージが出力されることがあります。
JSPコンパイル時にコンパイルエラーとなるケースの具体例について説明します。なお,具体例では,次のクラス名が存在していることを前提としています。
具体例について説明します。
次の指定内容の場合,複数のパッケージから同名のクラスをインポートしようとしているため,JSPコンパイル時にエラーとなります。
ファイルの種類 | 指定内容 |
---|---|
JSPファイル | <%@page import="packageA.classA" %> |
簡易構築定義ファイル | webserver.jsp.additional.import.list=packageB.classA |
具体例について説明します。
次の指定内容の場合,JSPファイル内で使用している「classA」が,「packageA.classA」または「packageB.classA」のどちらかを特定できないため,JSPコンパイル時にエラーとなります。
ファイルの種類 | 指定内容 |
---|---|
JSPファイル | <%@page import="packageA.*" %> <% System.out.println(classA.method1()); %> |
簡易構築定義ファイル | webserver.jsp.additional.import.list=packageB.* |
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.