13

次のようなtaglibディレクティブを宣言できることを読んだことを覚えているようです。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

web.xml で。これにより、taglib が使用されるすべての JSP ファイルでこのディレクティブを複製する必要がなくなります。これらのディレクティブを web.xml に追加する方法を誰か教えてもらえますか?

4

2 に答える 2

27

taglibweb.xmlの要素は、taglib上記のディレクティブとは異なる目的を果たします。

Davidが言ったように、taglibディレクティブは各ページで必要です。

共通の taglib を使用するページが多数ある場合は、taglib ディレクティブをインクルード ファイルに入れ、このファイルを各ページに含めることで、これをショートカットできます。しかし、どのようにしても、taglib ディレクティブはページ上にある必要があります。

各ページに含める必要があるタグは次のようになります。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

カスタムの場所にカスタムの taglib がある場合は、webapp ルートに相対的な場所を指定することもできます。

 <%@ taglib prefix="ex" uri="/taglib.tld" %>

taglib ディレクティブの詳細情報

web.xmlのtaglibディレクティブは、タグ uris を taglib の物理的な場所にマップします。JSP 2.0 以降、これはオプションです。準拠するコンテナは、taglib の自動検出を試みる標準の場所のセットを検索します: /WEB-INF とそのサブディレクトリ、/META-INF、および JAR ファイルの場合。

web.xml では次のようになります。

<taglib>
  <taglib-uri>
    http://www.example.com/taglib
  </taglib-uri>
  <taglib-location>
    /taglib.tld
  </taglib-location>
</taglib>

そして、taglib は次のように JSP ページで参照されます (各ページの taglib ディレクティブは避けられません!):

<%@ taglib prefix="ex" uri="http://www.example.com/taglib" %>

これは、上記の taglib ディレクティブの 2 番目の例と同じです。最大の違いは、taglib の場所を指す方法にあります。

このページにはもう少し詳しい情報が含まれています。

于 2008-10-23T03:21:52.423 に答える
5

すみません、少し間違っています。ページが taglib を使用している場合、そのページに taglib ディレクティブが必要です。すべてのページにインクルード ディレクティブが含まれるインクルード ファイルに共通の taglib ディレクティブを配置できますが、コンパイル時に taglib ディレクティブがそこにある必要があります。

web.xml に taglib 要素を含めず、代わりに、taglib ディレクティブで、WEB-INF/lib の taglib jar ファイル内にある TLD の「uri」要素で使用される URI 値を指定するようにします。 .

于 2008-10-22T16:31:44.543 に答える