wake-up-neo.com

Kann die Tag-Bibliotheksbeschreibung von Springframework nicht finden

Ich versuche dem Beispiel von Spring JPetStore zu folgen, aber ich bekomme einen Fehler in den JSP-Seiten in der Zeile, die auf den Tag-Tag "lib" verweist:

Kann den Tag-Bibliotheksdeskriptor für "http://www.springframework.org/tags" nicht finden.

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

Wie lautet die URL dieser Bibliothek?

Gibt es eine Möglichkeit, die direkte Abhängigkeit von dieser URL zu vermeiden?

Danke im Voraus

28
JLBarros
  1. Laden Sie das Spring-Abhängigkeitsglas herunter
  2. Legen Sie es in den lib-Verzeichnispfad /WEB-INF/lib/spring.jar
  3. Dann öffnen Sie die web.xml und der Beispielcode lautet:

    <taglib>
      <taglib-uri>/WEB-INF/spring.tld</taglib-uri>
      <taglib-location>/WEB-INF/spring.tld</taglib-location>
    </taglib>
    
  4. Dann wird die Taglib angezeigt, wo sich die JAR-Datei in Ihrem System befindet.

    <%@ taglib prefix="spring" uri="/WEB-INF/spring.tld" %>
    

Ich weiß, dass es eine alte Frage ist, aber die Tag-Bibliothek http://www.springframework.org/tags wird von spring-webmvc-Paket bereitgestellt. Mit Maven kann es dem Projekt hinzugefügt werden, indem die folgenden Zeilen in den pom.xml eingefügt werden.

<properties>
    <spring.version>3.0.6.RELEASE</spring.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>

Ohne Maven fügen Sie einfach dieses Glas Ihrem Klassenpfad hinzu. In jedem Fall ist es nicht notwendig, die tld-Datei direkt zu referenzieren, sie wird automatisch gefunden.

17
stivlo

Das Entfernen des Leerzeichens zwischen @ und taglib hat den Trick für mich gemacht: <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

12
ElPasmo

Wenn Sie Maven verwenden, verwenden Sie diese Abhängigkeit:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>3.1.4.RELEASE</version>
</dependency>
9
Eduardo Chavira

sie müssen die Abhängigkeit für Spring MVC hinzufügen 

fügt das in Ihrem Pom hinzu 

<!-- mvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>3.1.2.RELEASE</version>
</dependency>

Die TLD sollte sich im spring.jar befinden. Ihre Anwendung hat keine Abhängigkeit von dieser URL. Es wird nur als eindeutiger Name verwendet, um die Tag-Bibliothek zu identifizieren. Sie hätten genauso gut die URI "/ spring-tags" machen können, aber die Verwendung von URLs ist ziemlich üblich.

3
Steven Benitez

Ich hatte das gleiche Problem mit Weblogic 12c und Maven I zunächst beim Deployment von Eclipse (Kepler) (Deployments von der Konsole aus gab es keine Fehler).

Die anderen Lösungen auf dieser Seite haben nicht geholfen.

Ich entpackte die spring.tld spring-form.tld -Dateien des spring-webmvc-Jar (den ich in meinem Repository gefunden habe) im Ordner web\WEB-INF meines Kriegsmoduls.

Ich habe einen neuen Build gemacht; (von Eclipse) in Weblogic 12c implementiert, die Anwendung getestet und der Fehler wurde behoben;

Ich entfernte die spring.tld spring-form.tld -Dateien erneut und löschte sie; Die Anwendung wurde neu erstellt und erneut bereitgestellt, und der Fehler wurde nicht erneut angezeigt.

Ich überprüfte noch einmal, ob die Akten im Krieg verschwunden waren und tatsächlich nicht anwesend waren.

hoffe das hilft anderen bei einem ähnlichen Problem ...

2
Bamboomy

Ich habe schließlich RAD konfiguriert, um mein Maven-basiertes Projekt zu erstellen, bekam jedoch die folgende Ausnahme, wenn ich zu einer Seite navigiere, die die Spring-Taglib verwendet:

JSPG0047E: Die Tag-Bibliothek für uri .__ konnte nicht gefunden werden. http://www.springframework.org/tags at com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart (TagFileDependencyVisitor.Java:76) ...

So wie ich mein EAR konfiguriert hatte, befanden sich alle Gläser im EAR, nicht in der WEB-INF/lib des WAR. Nach der JSP 2.0-Spezifikation glaube ich, dass Tag-Bibliotheken in allen Unterverzeichnissen von WEB-INF gesucht werden, daher das Problem. Meine Lösung war, die tld-Dateien zu kopieren und unter WEB-INF/lib oder WEB-INF zu platzieren. Dann hat es funktioniert.

1
Stranger

Wenn Sie einen direkten Link wünschen:

https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/resources/META-INF/spring-form.tld

Oder aus Repos:

JCenter: link

Maven Central: link

Und wenn Sie als Gradle Abhängigkeit brauchen:

'org.springframework' kompilieren: spring-webmvc: 4.1.6.RELEASE

Weitere Informationen zum Spring-Formular: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-form.tld.html

1
Xelian

Dieses Problem tritt normalerweise beim Kopieren und Einfügen der Tag-URL-URL aus dem Internet auf. Normalerweise sind die Anführungszeichen "", in die die URL http://www.springframework.org/tags eingebettet ist, möglicherweise nicht korrekt. Entfernen Sie Anführungszeichen und geben Sie sie manuell ein. Dies hat das Problem für mich gelöst.

0
user7409727

Ich habe Spring-Boot benutzt. Möglicherweise wurde die Datei nicht synchronisiert.

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
</dependency>
0
Vikash

Kernabhängigkeiten für die Tag-Bibliothek: 

> <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
</dependency>
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
</dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
0
koberone

Hier ist ein anderer Fall.

Wir haben mehrere Portlets in verschiedenen Portlet-Anwendungen und alle verwenden den Frühling. Um die Größe jedes Krieges zu reduzieren, haben wir im WebSphere Portal-Server gemeinsam genutzte Bibliotheken für Springjars erstellt.

Ich stieß jedoch auf das gleiche Problem wie oben, dass die Springform-Tags nicht aus den JSP-Dateien stammen.

Um das Problem zu lösen, habe ich die Datei spring-form.tld in das Verzeichnis WEB-INF/kopiert und den Krieg erneut eingesetzt, und es hat funktioniert.

Ich hoffe, es hilft jedem, der ein ähnliches Problem hat wie ich.

0
Uresh Kuruhuri