.tld
下に2つのファイルを定義WEB-INF
しましたが、どちらも「 <URI>
XYZ 」と同じです。
JSPで宣言しました<%@ taglib prefix="mine" uri="XYZ" %>"
。
tld
コンテナは、関数クラスと関数定義を取得するためにどのファイルを読み取るかに関するあいまいさをどのように解決しますか?
編集: Tomcat 7で実行しましたが、例外はスローされませんでした。
クラスパスで見つかった最初の一致をロードします。順序は JVM と OS に依存します (基本的には任意です)。それに頼りたくないので、.tld
URI を修正する必要があります。
これが現実の問題であり、taglib コードが制御できない場合 (これは非常に奇妙ですが、既存の taglib の URI を誰がコピーするでしょうか? あなたは本当に他の taglib のドメインを所有していますか?)、いつでも taglib を再定義できます。 webapp の URI は次のweb.xml
とおりです。
<taglib>
<taglib-uri>http://www.example.com/foo</taglib-uri>
<taglib-location>/WEB-INF/foo.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://www.example.com/bar</taglib-uri>
<taglib-location>/WEB-INF/bar.tld</taglib-location>
</taglib>