Question

Je crois me rappeler avoir lu qu'il était possible de déclarer des directives taglib telles que:

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

dans web.xml. Cela évite de dupliquer cette directive dans tous les fichiers JSP dans lesquels la balise taglib est utilisée. Quelqu'un pourrait-il me dire comment ces directives peuvent être ajoutées à web.xml?

Était-ce utile?

La solution

L'élément taglib dans web.xml a un objectif différent de la directive taglib que vous avez ci-dessus.

Comme David l'a dit, la directive taglib est requise sur chaque page.

Si de nombreuses pages utilisent des taglibs communes, vous pouvez les raccourcir en plaçant les directives taglib dans un fichier include et en incluant ce fichier à chaque page. Mais peu importe comment vous le faites, la directive taglib doit être sur la page.

La balise que vous devez inclure sur chaque page ressemble à ceci:

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

Si vous avez une balise taglib personnalisée dans un emplacement personnalisé, vous pouvez également spécifier un emplacement relatif à la racine de l'application Web:

 <%@ taglib prefix="ex" uri="/taglib.tld" %>

Pour en savoir plus sur la directive taglib

La directive taglib de web.xml mappe les uris de la balise sur l'emplacement physique de votre taglib. Il est facultatif depuis JSP 2.0, car les conteneurs compatibles recherchent dans un ensemble d’emplacements standard pour tenter de détecter automatiquement la balise tag: / WEB-INF et ses sous-répertoires, / META-INF, ainsi que pour les fichiers JAR.

Cela ressemble à ceci dans web.xml:

<taglib>
  <taglib-uri>
    http://www.example.com/taglib
  </taglib-uri>
  <taglib-location>
    /taglib.tld
  </taglib-location>
</taglib>

Et la balise taglib est référencée dans la page JSP comme ceci (la directive taglib sur chaque page est inévitable!):

<%@ taglib prefix="ex" uri="http://www.example.com/taglib" %>

Ceci est équivalent au deuxième exemple que j'ai donné pour la directive taglib ci-dessus. La plus grande différence réside dans la façon dont vous pointez sur l'emplacement de taglib.

Cette page contient un peu plus d'informations.

Autres conseils

Désolé, vous vous trompez légèrement. Si une page utilise une balise taglib, vous devez avoir une directive taglib pour la page. Vous pouvez placer les directives taglib communes dans un fichier include que toutes vos pages incluent avec une directive include, mais lors de la compilation, la directive taglib doit être présente.

Je préfère ne PAS avoir les éléments taglib dans le fichier web.xml, mais plutôt demander à la directive taglib de spécifier la valeur de l'URI utilisée dans le champ "uri". élément du TLD contenu dans le fichier jar taglib de votre WEB-INF / lib.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top