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は、この行にエラーを示しています
タグライブラリ記述子が見つかりません。
フォーラムの多くは、JSTLライブラリをダウンロードするために古いSunサイトを指しています。現在、これらのリンクはすべて、JSTLバイナリへのリンクのないOracleホームページをポイントしています。これは、これを達成するためのより新しいアプローチがあると私を信じさせています。
適切なダウンロードリンクと非常に明確なインストール手順については、独自の JSTL wikiページ を確認してください。
質問を自分で付けた[jstl]
タグの上にマウスを置き、ブラックボックスが表示されるまでinfoリンクをクリックします。
次に、JSTL 1.2(または1.2.1)へのダウンロードリンクが見つかるまで、JSTLバージョン情報まで少し下にスクロールします。
最後に、webappの/WEB-INF/lib
にそのファイルを正確にドロップします。
これにより、taglib宣言でエラーが発生してはならず、 JSTLタグと関数 が機能するはずです。
私は自分の経験を共有したいだけです。 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>
Tomcatサーバーを使用する場合は、JSTL .jarファイルをTomcat libフォルダーに配置することをお勧めします。これにより、すべてのWebプロジェクトのJSTLに自動的にアクセスできます(もちろん、.jspファイルのtaglib宣言を使用)。
Apache Standard Taglib をダウンロードして、プロジェクトにjarを含めることができます。
これは、Mavenを使用していない人のための修正です。コアタグライブラリを機能させるには、standard.jar
をlibフォルダーに追加する必要もあります。 jstlバージョン1.1で動作します。
<%@taglib prefix="core" uri="http://Java.Sun.com/jsp/jstl/core"%>
私は同じ問題を抱えていました Spring Tool Suite 3.2およびjstlのバージョンを依存関係リストに追加するときにjstlを(1.1.2から)1.2に手動で変更すると、エラーが消えました。
Eclipse IDEを使用したMavenプロジェクトでこの問題が発生していました。プロジェクトのビルドパスで「順序とエクスポート」を変更し、Mavenの依存関係を最初に配置すると、エラーが消えました。これは、Eclipse IDEがMavenライブラリをロードする前に最初にアプリケーションソースをビルドしていたためだと思います。