web.xmlでJSP taglibディレクティブを宣言する
質問
次のようなtaglibディレクティブを宣言できることを読んだことを覚えているようです。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
web.xmlの。これにより、taglibが使用されるすべてのJSPファイルでこのディレクティブを複製する必要がなくなります。誰かがこれらのディレクティブをweb.xmlに追加する方法をどのように教えてもらえますか?
解決
web.xmlの taglib
要素は、上記の taglib
ディレクティブとは異なる目的を果たします。
デビッドが言ったように、各ページには taglib
ディレクティブが必要です。
一般的なtaglibを使用するページが多数ある場合は、taglibディレクティブをインクルードファイルに入れ、このファイルを各ページにインクルードすることにより、これをショートカットできます。ただし、どのように実行しても、taglibディレクティブは何らかの形でページ上に存在する必要があります。
各ページに含める必要があるタグは次のようになります。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
カスタムの場所にカスタムtaglibがある場合は、webappルートを基準にした場所を指定することもできます:
<%@ taglib prefix="ex" uri="/taglib.tld" %>
web.xmlの taglib
ディレクティブは、タグurisをtaglibの物理的な場所にマップします。 JSP 2.0以降、オプションのコンテナは標準の場所のセットを参照してtaglibを自動検出しようとするため、/ WEB-INFとそのサブディレクトリ、JARファイルの/ META-INFも同様です。
web.xmlでは次のようになります。
<taglib>
<taglib-uri>
http://www.example.com/taglib
</taglib-uri>
<taglib-location>
/taglib.tld
</taglib-location>
</taglib>
そして、このようなJSPページでtaglibが参照されます(各ページのtaglibディレクティブは避けられません!):
<%@ taglib prefix="ex" uri="http://www.example.com/taglib" %>
これは、上記のtaglibディレクティブで指定した2番目の例と同等です。最大の違いは、taglibの場所を指す方法です。
このページにはもう少し情報が含まれています。
他のヒント
申し訳ありませんが、あなたは少し間違えています。ページがtaglibを使用する場合、ページ上でtaglibディレクティブを使用する必要があります。一般的なtaglibディレクティブは、すべてのページにincludeディレクティブを含むincludeファイルに配置できますが、コンパイル時にはtaglibディレクティブが必要です。
web.xmlにtaglib要素を含めずに、代わりにtaglibディレクティブに&quot; uri&quot;で使用されるURI値を指定させたいWEB-INF / libのtaglib jarファイル内にあるTLDの要素。