web-dev-qa-db-fra.com

Impossible de trouver le descripteur de bibliothèque de balises de springframework

J'essaie de suivre l'exemple de spring JPetStore mais une erreur se produit dans les pages JSP de la ligne qui fait référence à la balise lib spring:

Impossible de trouver le descripteur de bibliothèque de balises pour "http://www.springframework.org/tags"

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

Quelle est l'URL de cette bibliothèque?

Existe-t-il un moyen d'éviter la dépendance directe à cette URL?

Merci d'avance

28
JLBarros
  1. Téléchargez le fichier de dépendance Spring
  2. Placez-le dans le chemin du dossier lib /WEB-INF/lib/spring.jar.
  3. Ensuite, ouvrez le fichier web.xml et le code exemple est le suivant:

    <taglib>
      <taglib-uri>/WEB-INF/spring.tld</taglib-uri>
      <taglib-location>/WEB-INF/spring.tld</taglib-location>
    </taglib>
    
  4. Ensuite, la balise tagl indique où se trouve le fichier jar dans votre système.

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

Je sais que c'est une vieille question, mais la bibliothèque de balises http://www.springframework.org/tags est fournie par le paquet spring-webmvc. Avec Maven, il peut être ajouté au projet avec les lignes suivantes à ajouter dans le pom.xml

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

Sans Maven, ajoutez simplement ce fichier dans votre chemin de classe. Dans tous les cas, il n'est pas nécessaire de référencer directement le fichier tld, il sera automatiquement trouvé.

17
stivlo

Supprimer l’espace entre @ et taglib a fait le bon choix: <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

12
ElPasmo

Si vous utilisez maven, utilisez cette dépendance:

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

vous devez ajouter la dépendance pour le printemps MVC 

plateau en ajoutant que dans votre pom 

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

Le TLD doit être situé dans le spring.jar. Votre application ne dépendra pas de cette URL. Il est simplement utilisé comme nom unique pour identifier la bibliothèque de balises. Ils auraient tout aussi bien pu créer l'URI "/ spring-tags", mais l'utilisation d'URL est assez courante.

3
Steven Benitez

J'ai eu le même problème avec weblogic 12c et maven I initialement lors du déploiement à partir d'Eclipse (kepler) (le déploiement à partir de la console n'a généré aucune erreur).

Les autres solutions données sur cette page n’ont pas aidé.

J'ai extrait les fichiers spring.tld spring-form.tld du fichier jar spring-webmvc (que j'ai trouvés dans mon référentiel) dans le dossier web\WEB-INF de mon module war;

J'ai fait une nouvelle construction. déployé (à partir d'Eclipse) dans weblogic 12c, testé l'application et l'erreur avait disparu;

J'ai supprimé à nouveau les fichiers spring.tld spring-form.tld et après les avoir supprimés; en reconstruisant et en redéployant l’application, l’erreur ne s’est plus présentée.

J'ai vérifié deux fois si les dossiers étaient partis pendant la guerre et ils n'étaient effectivement pas présents.

espérons que cela aide les autres avec un problème similaire ...

2
Bamboomy

J'ai finalement configuré RAD pour construire mon projet basé sur Maven, mais je recevais l'exception suivante lorsque je naviguais vers une page qui utilise la balise tag Spring:

JSPG0047E: Impossible de localiser la bibliothèque de balises pour uri http://www.springframework.org/tags at com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart (TagFileDependencyVisitor.Java:76). ...

Comme j’avais configuré mon EAR, tous les pots se trouvaient dans l’EAR, et non dans le fichier WEB-INF/lib de WAR. Selon les spécifications de JSP 2.0, les bibliothèques de balises sont recherchées dans tous les sous-répertoires de WEB-INF, d’où le problème. Ma solution a été de copier les fichiers tld et de les placer sous WEB-INF/lib ou WEB-INF .. Ensuite, cela a fonctionné.

1
Stranger

Si vous voulez un lien direct:

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

Ou de repos:

JCenter: link

Maven Central: link

Et si vous avez besoin d’une dépendance à Gradle:

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

Plus d’informations sur Spring-Form: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-form.tld.html

1
Xelian

Ce problème apparaît normalement lors de la copie en collant l’URL lib tag depuis Internet. Généralement, les guillemets "" dans lesquels l'URL http://www.springframework.org/tags est incorporé peuvent ne pas être corrects. Essayez de supprimer les guillemets et de les taper manuellement. Cela a résolu le problème pour moi.

0
user7409727

J'utilisais Spring-Boot, Pour moi, couper-coller de ci-dessous dans Pom.xml fonctionnait. Peut-être que le fichier n'était pas synchronisé.

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

Dépendances principales pour la bibliothèque de balises: 

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

Voici un autre cas.

Nous avons plusieurs portlets dans différentes guerres d’applications de portlets et tous utilisent Spring. Par conséquent, afin de réduire la taille de chaque guerre, nous avons créé des bibliothèques partagées pour les fichiers jar Spring sur le serveur WebSphere Portal.

Cependant, je suis tombé sur le même problème que ci-dessus, à savoir que les balises de formulaire printanier n'étaient pas référencées à partir des fichiers jsp.

Afin de résoudre le problème, j'ai copié le fichier spring-form.tld dans le répertoire WEB-INF/et redéployé la guerre et tout a fonctionné.

J'espère que cela aidera pour tous ceux qui ont un problème similaire au mien.

0
Uresh Kuruhuri