Dans JSP est-il nécessaire de redéclarer bibliothèques de balises dans les fichiers inclus?

StackOverflow https://stackoverflow.com/questions/1683109

  •  18-09-2019
  •  | 
  •  

Question

Je ne suis pas vraiment au courant de la façon dont cela fonctionne dans JSP

mais dans le

modèle main.jsp il c'est:

<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
<jsp:include page="/jsp/common_head.jsp"/>

puis à common_head.jsp nous avons cette fois:

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

est-ce nécessaire?

ou autrement dit

sont des déclarations taglib propagées pour inclure des fichiers?

Était-ce utile?

La solution

Oui, cela est nécessaire. Avant exécuté pour la première fois, chaque fichier JSP individuellement converti / traduit / compilé à une classe Servlet autonome. Tous les tags seront convertis en code Java « réel » / méthodes. Si vous ne déclarez pas taglib, le compilateur JSP ne sais pas ce code Java / méthodes qu'il a besoin de générer / appel pour les balises particulières.

En cas de Tomcat par exemple, jetez un oeil dans le dossier /work pour tous les JSP compilés de. Voir leur source et ce sera clair.

Autres conseils

<jsp:include page="/jsp/common_head.jsp"/>

... tag est une dynamique comprennent ce qui signifie qu'elle appelle dynamiquement la page common_head.jsp, qui est compilé indépendamment de la page, y compris. Ainsi, la directive taglib devrait être nécessaire.

Si, d'autre part, vous deviez faire une statique comprenant l'utilisation du include directive

<%@ include file="/jsp/common_head.jsp" %>

... le fichier aurait été collé copie et et compilé avec la page à partir de laquelle il est inclus. Ensuite, la directive taglib ne devrait pas être nécessaire.

Dans tous les cas, vous pouvez avoir le taglib inclus juste pour obtenir de l'aide de l'éditeur des balises que vous utilisez au cours du développement.

Notez que les fichiers statiques sont statiquement inclus, même avec le jsp: include balise

comprennent la directive: http: //java.sun. com / products / jsp / syntaxe / 1.2 / syntaxref129.html # 997991

jsp comprennent: http://java.sun.com/ produits / jsp / syntaxe / 1.2 / syntaxref1214.html

Comme vous incluez une ressource dynamique, cette ressource est « autonome » il devrait donc inclure une bibliothèque de balises que vous utilisez. Autre question est de savoir si vous utilisez ces balises ...

Oui, il est nécessaire pour la compilation JSP. Vous pouvez également utiliser ci-dessous taglib au lieu de c.tld.

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

espère que cela aidera

Dans d'autres systèmes de modèle les définitions généralement reportées. Je ne vois pas pourquoi vous devriez avoir à l'utiliser à nouveau

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