異なる URI を使用して taglib 接頭部を再定義しない

この規則により、同じ prefix 属性値を異なる uri 属性値に関連付ける JSP taglib ディレクティブにフラグを立てます。この再定義が同じ JSP ファイル内で発生した場合、または静的に組み込まれた JSP ファイルまたはフラグメント内で発生した場合、再定義にフラグが立てられます。

JSP 2.1 の仕様に準拠して、JSP の現在の有効範囲内で接頭部を再定義してはいけません。タグ・ライブラリーの接頭部が JSP または組み込まれた JSP またはフラグメント内の別の URI で既に定義されている場合、製品は変換エラーを作成しなければなりません。 JSP 2.1 は WebSphere Application Server V7 では新規でした。 検証はそのリリースで新規であり、以前のバージョンでは施行されていませんでした。

ベスト・プラクティスに基づいた解決方法は、独自の接頭部を使用するように taglib ディレクティブを変更し、新規の接頭部を使用するように影響を受ける JSP ファイルを更新することです。

JSP ファイルを変更しない場合は、以下の JSP 属性を IBM Web 拡張ファイル (ibm-web-ext.xml) に設定することで、Web モジュールのこの振る舞いを以前のバージョンの振る舞いに戻すことができます。

<jsp-attribute name="allowTaglibPrefixRedefinition" value="true"/>

代替方法として、Web コンテナーのカスタム・プロパティー com.ibm.wsspi.jsp.allowtaglibprefixredefinition=true を、最初のオプションが提供する特定の Web モジュールだけではなくサーバー上のすべてのアプリケーションに影響するように設定することもできます。

例 1: 以下の行が Page1.jsp という名前の同じ JSP ファイル内にある場合
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt"%>
<%@ taglib uri="/WEB-INF/otherLib.tld" prefix="fmt"%>

例 1 では、2 番目のエントリーが fmt の再定義であるため、これにフラグが立てられます。この例では、ツールは Eclipse エラー・ログに以下の警告メッセージを記録します。

!MESSAGE CWMIG1125W: WebContent/Page1.jsp ファイルが fmt 接頭部の URI 値を /WEB-INF/fmt.tld から /WEB-INF/otherLib.tld に再定義することを試みました。
MyJspProject プロジェクト内の /MyJspProject/WebContent/Page1.jsp ファイルの分析中に、「異なる URI を使用して taglib 接頭部を再定義しない」規則で問題が発生しました。

例 2: 以下の内容を含む Page2.jsp という名前の JSP ファイルが指定された場合
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt"%>
<%@ include file="myPage.jspf"%>

ここで、myPage.jspf には次の行が含まれています。

<%@ taglib uri="/WEB-INF/otherLib.tld" prefix="fmt"%>

例 2 では、myPage.jspf にある taglib 行にフラグが立てられます。 この例では、Eclipse エラー・ログに記録された以下の警告メッセージが表示されます。

!MESSAGE CWMIG1124W: WebContent/myPage.jspf ファイルが fmt 接頭部の URI 値を WebContent/Page2.jsp ファイルの有効範囲内にある /WEB-INF/fmt.tld から /WEB-INF/otherLib.tld に再定義することを試みました。
MyJspProject プロジェクト内の /MyJspProject/WebContent/Page2.jsp ファイルの分析中に、「異なる URI を使用して taglib 接頭部を再定義しない」規則で問題が発生しました。

エラー・ログ情報を使用して、競合しているファイルを把握します。 組み込まれた JSP ファイルのために、異なる有効範囲内の複数の基本 JSP ファイルでの再定義が発生する場合があります。この場合、単一フィックスが複数の問題を解決するファイルには複数回フラグが立てられます。組み込みファイルがどの JSP ファイルに含まれるのかによって、同じ組み込みファイルによるタグ・ライブラリー URI の再定義は異なる場合があります。このため、各エラーがリストされます。

Eclipse エラー・ログを開くには、「ウィンドウ」>「ビューの表示」>「その他」>「エラー・ログ」をクリックします。

追加情報については、以下を参照してください。