web-dev-qa-db-ja.com

「http://Java.Sun.com/jsp/jstl/core」のタグライブラリ記述子が見つかりません

JSPページの一番上にこれを含めました。

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

既にJSTL JARファイルをWEB-INF/libディレクトリに配置しました。それでも、JSPはtaglibを解決できません。次のエラーが表示されます。

http://Java.Sun.com/jsp/jstl/core 」のタグライブラリ記述子が見つかりません

Eclipse Junoを使用しており、プロジェクトの構造を以下に示します。

enter image description here

42
user962206

http://Java.Sun.com/jsp/jstl/core 」のタグライブラリ記述子が見つかりません

以前の質問の1つ に基づいています。Tomcat7を使用しています。その場合、JSTL 1.2が必要です。ただし、jstl.jarファイルがありますが、JSTL 1.2には明らかにjstl-1.2.jarのようにバージョン番号が含まれています。唯一のファイル名jstl.jarは、JSTL 1.0および1.1で一般的です。このバージョンでは、standard.jarに必要なTLDファイルを含む/WEB-INF/libが必要です。ただし、特定のケースでは、standard.jar/WEB-INF/libで明らかに欠落しているため、taglib URIを解決できなかったのはまさにそのためです。

これを解決するには、間違ったJARファイルを削除し、 jstl-1.2.jar をダウンロードして、/WEB-INF/libに完全にドロップする必要があります。それで全部です。それを抽出したり、プロジェクトのBuild Pathをいじったりする必要はありません。

そのゆるいc.tldファイルも削除することを忘れないでください。それは絶対にそこに属していません。これは確かにいくつかの質の悪いチュートリアルで指示されているか、インターネットの他の場所で回答されています。これは、大きな誤解と設定ミスが原因の神話です。以前のJSTLバージョンではなく、クラスパスに緩いJSTL TLDファイルを置く必要はありません。

Mavenを使用している場合は、以下の座標を使用します。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

また、web.xmlがconform 少なくとも Servlet 2.4として宣言されているため、Servlet 2.3以前として宣言されていないことも確認する必要があります。そうしないと、JSTLタグ内のEL式が機能しなくなります。ターゲットコンテナに一致する最も高いバージョンを選択し、<!DOCTYPE>のどこにもweb.xmlがないことを確認します。 Servlet 3.0(Tomcat 7)互換の例は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<web-app
    xmlns="http://Java.Sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <!-- Config here. -->

</web-app>

こちらもご覧ください:

92
BalusC

URIは、使用しているJSTLのバージョンによって異なります。バージョン1.0の場合:

http://Java.Sun.com/jstl/core

1.1(およびそれ以降)では、次を使用する必要があります。

http://Java.Sun.com/jsp/jstl/core
8
nfechner

私は同じ問題を抱えていましたが、jstl

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

「標準」も追加する必要がありました。

<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>

また、前の投稿で述べたように:

6
Nenad Bulatovic

Mavenを使用している場合、pomの<dependencies>タグは次のようになります。

<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>javax.servlet.jsp.jstl-api</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
    </dependency>
</dependencies>

わたしにはできる。

2
EA0906

Jstl.jarの代わりにjstl-1.2.jarをダウンロードすると問題が解決します

1
shikha singh

javax.servlet.jsp.jstl.jarをダウンロードし、動的Webアプリケーションを開発するだけの場合は、ビルドパスとWEB-INF/libに追加します。

Mavenを使用して動的Webアプリケーションを開発する場合、pomファイルにjavax.servlet.jsp.jstl依存関係を追加します。

ありがとう

ニルマルライサンジェエフ

0
Sanjeev Kumar

動作させるには:

ライブラリにjstlおよびstandard jarファイルを追加します。

それが役に立てば幸い.. :)

0
Sarat Chandra

さて、私はこの投稿を読んでおり、この問題を修正するには十分ではないようです。

Tomcat 8のSpringベースのアプリケーションは動作しません。

ここに解決策があります

ステップ1⇒pom.xmlに次の依存関係を追加します

<!-- JSTL Support -->

     <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

ステップ2⇒JSPページに次の2つのステートメントをすべて追加し、<%@ page%>タグでisELIgnored = "false"属性を使用していることを確認します。

<%@ page language="Java" contentType="text/html; charset=ISO-8859-1" isELIgnored="false" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core"%>

ステップ⇒web.xmlまたは他の場所でこれまでに行った他のすべての設定を削除します:)

ステップ4⇒Tomcatをクリーニングし、Tomcatを再起動します。

サイドノート⇒実際、JSTLはTomcat 8の3.xサーブレット仕様でのみ動作します。

[http://www.kriblog.com/j2ee/jsp/jstl-with-spring-4-on-Tomcat-8.html]
0
user1788142

web.xmlでも同様に設定する必要があります。以下のコードを参照してください。

<taglib>
    <taglib-uri>http://Java.Sun.com/jsp/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/lib/c.tld</taglib-location>
</taglib>

それでも問題が発生する場合はお知らせください。

0
Gautam

これも機能します:

<dependency>
    <scope>compile</scope>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>1.2</version>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

そのため、jstl-api 1.2とともにstandard.jarの代わりにjstl 1.2を使用しました

0
Tomas Antos

maven依存関係を追加します。

<dependency>
  <groupId>jstl</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>taglibs</groupId>
  <artifactId>standard</artifactId>
  <version>1.1.2</version>
  <scope>compile</scope>
</dependency>
0
Dev M

以下の両方のjarがビルドパスに存在することを確認してください。

  1. standard-1.1.2.jar
  2. jstl-api-1.2.jar

Mavenの依存関係は次のとおりです。

<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>$1.2</version>
</dependency>

<dependency>
   <groupId>taglibs</groupId>
   <artifactId>standard</artifactId>
   <version>1.1.2</version>
</dependency
0
Anshul Sood