67

JSP ページを使用して値の配列を出力しています。これにはJSTLを使用しようとしています<c:forEach>

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

問題は私の JSTL taglib 宣言です:

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

IDE はこの行にエラーを表示します

タグ ライブラリ記述子が見つかりません。

フォーラムの多くは、古い Sun サイトを参照して JSTL ライブラリをダウンロードしています。現在、これらのリンクはすべて、JSTL バイナリへのリンクを含まない Oracle ホームページを指しています。これは、これを達成するための新しいアプローチがあると私に信じさせています。

4

8 に答える 8

97

この問題を解決するには:

  1. jstl jarクラスパスに含まれている必要があります。mavenを使用している場合は、ここpom.xmlに記載されているスニペットを使用してjstlに依存関係を追加します。Mavenを使用していない場合は、ここからjstl jarをダウンロードして、にデプロイします。WEB-INF/lib

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

     <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    
于 2012-11-28T01:54:17.863 に答える
35

適切なダウンロードリンクと非常に明確なインストール手順については、独自のJSTLwikiページを確認してください。

[jstl]ブラックボックスが表示されるまで自分で質問に付けたタグの上にマウスを置き、その中の情報リンクをクリックします。

ここに画像の説明を入力してください

次に、JSTL 1.2(または1.2.1)へのダウンロードリンクが見つかるまで、JSTLバージョン情報まで少し下にスクロールします。

ここに画像の説明を入力してください

最後に、そのファイルをwebappのに正確にドロップします/WEB-INF/lib

ここに画像の説明を入力してください

このようにして、taglib宣言はエラーを発生させてはならず、JSTLタグと関数は正常に機能するはずです。

于 2012-11-28T01:55:29.600 に答える
4

私の経験を共有したいだけです。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>
于 2015-01-03T16:14:54.743 に答える
1

これは、maven を使用していない人のための修正です。standard.jarまた、コア タグ ライブラリを機能させるには、lib フォルダーに追加する必要があります。jstl バージョン 1.1 で動作します。

<%@taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core"%>
于 2013-07-04T08:06:39.073 に答える
1

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

于 2012-11-28T01:15:39.443 に答える