57

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

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

すでにJSTLJARファイルをWEB-INF/libディレクトリに配置しました。しかし、それでも、JSPはtaglibを解決できません。以下のエラーが発生します:

「<ahref="http://java.sun.com/jsp/jstl/core" rel = "noreferrer">http://java.sun.com/jsp/jstl/のタグライブラリ記述子が見つかりませんコア」</p>

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

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

4

17 に答える 17

118

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

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

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

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

Mavenを使用している場合は、以下の座標を使用してください。

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

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

<?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>

###参照:

于 2012-11-09T12:02:27.030 に答える
16

私は同じ問題を抱えていましたが、jstlを持っていたにもかかわらず

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

'standard'も追加する必要がありました:

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

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

于 2017-04-18T19:05:57.437 に答える
10

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

http://java.sun.com/jstl/core

1.1(およびそれ以降)の場合、以下を使用する必要があります。

http://java.sun.com/jsp/jstl/core
于 2012-11-08T09:13:46.060 に答える
5

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>

わたしにはできる。

于 2015-12-10T13:52:29.650 に答える
2

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

于 2018-06-06T05:09:55.617 に答える
1

以下の両方の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
于 2018-02-16T06:25:30.677 に答える
1

これも機能します:

<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-api1.2と一緒にstandard.jarの代わりにjstl1.2を使用しました

于 2019-03-06T15:35:34.643 に答える
1
jspの問題を解決するには、pomファイルで以下の依存関係を使用する必要があります。mavenを使用しない場合は、依存関係jarをダウンロードして、WEB-INFディレクトリに追加します。
<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>
于 2020-01-23T19:07:29.257 に答える
1

適切な依存関係があっても、Eclipseでエラーが発生することがあります。以下は、Eclipseを更新するために使用した方法です。

方法1:コピーペーストjsp。

より深い層のjspでエラーが発生する

また、同じjspがディレクトリの奥深くにあると、そのtaglibが見つからないという奇妙な状況を見つけました。ただし、/ webapp /の下にある場合は、問題はありません。

Mavenクリーン、Mavenビルド、プロジェクトクリーンを試しましたが、すべて問題を解決できません。

エラーのあるjspを削除することで解決しましたが、正しいjspを外部フォルダーから内部フォルダーに再度コピーできます。次に、taglibsを認識できます。

jspを外部フォルダにコピーして貼り付けた後にjspエラーが解決されました

したがって、Eclipse自体のバグである可能性があると思います。

私の依存関係は次のようなものです

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>
    <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>

方法2:jstlのバージョンを変更して元に戻す

jstlのバージョンを変更してから、mavencleanとmavenupdateを試してから、バージョンを元に戻してmavencleanを再度実行してください。

于 2021-04-22T06:54:33.190 に答える
0

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

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

それでも問題が解決しない場合はお知らせください。

于 2012-11-08T09:50:12.197 に答える
0

さて、私はこの投稿を読みましたが、この問題を修正するには十分ではないようです。

Tomcat8の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"%>

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

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

補足⇒実際、JSTLはTomcat8の3.xサーブレット仕様でのみ動作します。

[http://www.kriblog.com/j2ee/jsp/jstl-with-spring-4-on-tomcat-8.html]
于 2016-02-21T15:06:59.727 に答える
0

それを機能させるには:

jstlファイルと標準jarファイルをライブラリに追加します。

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

于 2017-05-04T08:24:52.653 に答える
0

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>
于 2017-07-11T12:17:59.957 に答える
0

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

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

ありがとう

nirmalrajsanjeev

于 2017-11-30T04:50:09.710 に答える
0

私のために働いたもの(私はEclipse2019でJava8とTomcat9を使用しています):

pom.xml

    <!-- jstl -->
    <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>

.jspファイル

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
于 2019-04-09T00:16:19.900 に答える
0

これは、JSTLでの作業中に発生する非常に一般的なエラーです。

このエラーを簡単に解決するには :-

  1. jstl-1.1.2.jarおよびstandard- 1.1.2.jarをダウンロードします
  2. 次に、それらをDynamicWebAppプロジェクトのWEB-INFの下のlibフォルダーに貼り付けます。

エラーがなくなったことがわかります。

お役に立てれば。

于 2020-01-04T15:06:31.623 に答える
0

jstライブラリ(ここ)のバージョン1.2.5をダウンロードした後でも、同じエラーメッセージ(Eclipse Enterprise 2020-06、Tomcat 8.5、動的Webプロジェクト)が表示され、「WEB-INF/lib」フォルダーにドロップして<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>jspファイルの一番上に追加されます。

代わりにバージョン1.2(ここ)を使用して修正しました。

于 2020-07-20T12:23:24.990 に答える