2012-11-28 13 views
60

JSPページを使用して値の配列を出力しています。私はこれにJSTL <c:forEach>を使用しようとしています。Sun JSTL taglib宣言が「タグライブラリディスクリプタを見つけることができません」で失敗する

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

IDEは、この行にエラーを示し

タグライブラリ記述子を見つけることができません:

<c:forEach items="${objects}" var="object"> 
    <td>${object.name} </td> 
</c:forEach> 

問題は、私のJSTLタグライブラリの宣言です。

多くのフォーラムでは、旧SunサイトでJSTLライブラリをダウンロードすることを指摘しています。これらのリンクはすべて、Oracleホーム・ページを指し、JSTLバイナリへのリンクはありません。これにより私はこれを達成するための新しいアプローチがあると信じています。

+0

クラスパスに 'jstl.jar'がありますか?リンクが役立つかもしれないことを確認してくださいhttp://stackoverflow.com/questions/5987908/how-to-resolve-can-not-find-the-tag-library-descriptor-for-http-java-sun-co – Usha

答えて

84

この問題を解決するには、次の

  1. jstl jarがクラスパスにする必要があります。 mavenを使用している場合は、pom.xmlのjstlにhereのスニペットを使用して依存関係を追加してください。 mavenを使用していない場合は、hereからjstl jarをダウンロードし、WEB-INF/libに展開してください。

  2. はあなたjspの上部に次のtaglibディレクティブがあることを確認してください:

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

JSTLが移動されました - 依存関係の代わりにこのリンクを使用してください: http://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl/1.2 –

+1

これはhttp://mvnrepository.com/artifact/javaxです.servlet/jstl/1.2 – user2418306

1

Apache Standard Taglibをダウンロードして、プロジェクトにjarを含めることができます。

34

をちょうど適切なダウンロードリンクとクリスタルクリアなインストール手順についてはJSTL wiki page私たち自身を確認してください。

[jstl]タグの上にマウスを置き、黒色のボックスが表示されてその中にの情報のリンクが表示されるまでご自身で質問してください。

enter image description here

その後、あなたはJSTL 1.2(または1.2.1)へのダウンロードリンクを見つけるまでダウンJSTLのバージョン情報にビットをスクロールします。

enter image description here

最後にちょうどWebアプリケーションの/WEB-INF/libに正確にそのファイルをドロップします。

enter image description here

のtaglib宣言はもうすべてのエラーを与えてはならないとJSTL tags and functionsだけで動作するはずですこの方法です。

+0

また、 'jstl-1.2.jar'を持っていることを確認してください。必ずしも' jstl-api-1.2.jar'である必要はありません。 – CodyBugstein

0

eclipse IDEを使用してmavenプロジェクトでこの問題が発生しました。私はプロジェクトのビルドパスでMavenの依存関係を最初に入れて 'Order and Export'を変更し、エラーは消えました。私は、Eclipse IDEが最初にMavenライブラリをロードする前に私のアプリケーションソースを構築していたからです。

0

Spring Tool Suite 3.2で同じ問題が発生していましたが、それを依存関係リストに追加するとjstlのバージョンが1.2(1.1.2から)に手動で変更され、エラーが表示されなくなりました。

1

これは、Mavenを使用していないユーザーのための修正プログラムです。また、coreタグライブラリが動作するように、libフォルダにstandard.jarを追加する必要があります。 jstlバージョン1.1用に動作します。

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

あなたがTomcatサーバーを使用している場合、私はあなたがTomcatのlibフォルダにJSTLの.jarファイルを置くことをお勧めします。これにより、すべてのWebプロジェクトで自動的にJSTLにアクセスできるようになります(もちろん.jspファイルのtaglib宣言もあります)。

2

私の経験を共有したいだけです。私はmavenを使ってjstlについて同じ問題を抱えています。私は2つの依存関係を追加して解決しました。

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 
    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
関連する問題