2

.tld下に2つのファイルを定義WEB-INFしましたが、どちらも「 <URI>XYZ と同じです。

JSPで宣言しました<%@ taglib prefix="mine" uri="XYZ" %>"

tldコンテナは、関数クラスと関数定義を取得するためにどのファイルを読み取るかに関するあいまいさをどのように解決しますか?

編集: Tomcat 7で実行しましたが、例外はスローされませんでした。

4

1 に答える 1

2

クラスパスで見つかった最初の一致をロードします。順序は JVM と OS に依存します (基本的には任意です)。それに頼りたくないので、.tldURI を修正する必要があります。

これが現実の問題であり、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>
于 2013-01-29T16:43:08.513 に答える