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
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>
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.
Das Entfernen des Leerzeichens zwischen @ und taglib hat den Trick für mich gemacht: <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
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>
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.
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 ...
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.
Wenn Sie einen direkten Link wünschen:
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
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.
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>
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>
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.