Simple JSP - Attribut non valide pour la balise selon TLD
Mon projet dans eclipse -
Je reçois le message d'erreur ci-dessous, quand je lance MyTagUser.jsp - HTTP Status 500 - /jsp/MyTagUser.jsp(14,0) Attribute subTitle invalid for tag Header according to TLD
org.apache.jasper.JasperException: /jsp/MyTagUser.jsp(14,0) Attribute subTitle
invalid for tag Header according to TLD
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)...etc.
Extrait de l'en-Tête.jsp -
<body>
<img src="../images/java_logo.gif"><br>
<em><strong> ${subTitle} </strong></em> <br>
</body>
Extrait de MyTagUser.jsp -
<%@ taglib prefix="myTags" tagdir="/WEB-INF/tags"%>
<html>
<head>
</head>
<body>
<myTags:Header subTitle="Java is the best !!!" />
JSP and Servlets.
</body>
</html>
- Il semble que vous essayez de suivre avec la Tête la Première, les Servlets et les JSP, 2e Édition. Quelques pages plus tard, ils vont parler de la solution de @Borat Sagdiyev a donné
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser l'attribut de la directive dans votre en-Tête.balise de fichier comme ci-dessous montrent -
rtexprvalue="true"
à la partie critique lorsque j'ai rencontré l'OP de l'erreur en essayant de passer un attribut d'une balise personnalisée à l'autre. Tous deux avaient été correctement déclarer les attributs attendus, mais sans préciserrtexprvalue="true"
il aurait erreur indépendamment.Première Solution:
Il semble que vous vouliez inclure la zone d'en-tête dans votre jsp. Mais c'est une mauvaise façon.
Vous devez créer un en-tête.jsp et ensuite inclure l'en-tête.jsp dans votre MyTagUser.jsp et ils devraient être dans le répertoire WEB-INF(ou ses sous-répertoires).
Y compris la méthode : <%@ include file="WEB-INF/tags/en-tête.jsp"> utiliser ce code dans MyTagUser.jsp
Deuxième Solution :
dans votre fichier de balises
vous devez définir l'attribut(s). découvrez http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html