Je viens de créer une nouvelle application IceFaces et j'essaie d'inclure une barre de navigation dans toutes les pages. Lorsque j'utilise la balise jsp:directive.include
le fichier est inclus, mais lorsque j'utilise jsp:include
il ne semble pas être chargé. En fait, lorsque je vérifie le code source HTML dans mon navigateur, c'est comme si le fichier inclus était complètement vide. Je ne veux pas utiliser jsp:directive.include
car il ne montrera pas automatiquement les mises à jour du fichier inclus.JSP: include ne restitue pas le fichier inclus
Mon environnement: Eclipse 3.5, Tomcat 6, JSF 1.2, IceFaces 1.8.
Procédure pour reproduire le problème et des morceaux de code:
créer une nouvelle dynamique de projet Web avec les options suivantes: exécution cible: Apache tomcat v6.0 version du module web dynamique: 2,5 Configuration : ICEfaces project
créer un nouveau fichier ICEFaces JSPX - le fichier d'accueil. Certains code:
<jsp:directive.page contentType="text/html;charset=ISO-8859-1" /> <f:view > <ice:outputDeclaration doctypeRoot="HTML" doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN" doctypeSystem="http://www.w3.org/TR/html4/loose.dtd" /> <html> <head> <title>test file</title> <link rel="stylesheet" type="text/css" href="./xmlhttp/css/rime/rime.css" /> </head> <body> <jsp:directive.include file="./vertical_navigation.jsp" /> <!-- working --> <jsp:include page="./vertical_navigation.jsp" /> <!-- not working, no error though --> </body> </html> </f:view>
créer le fichier à inclure, aussi comme un nouveau fichier ICEFaces JSPX. Code simplifié:
<ice:form> <ice:panelGrid columns="1" width="152"> <ice:graphicImage url="./img/image.jpg"></ice:graphicImage> <ice:panelCollapsible expanded="true"> <f:facet name="header"> <ice:panelGroup> <ice:outputText value="Customer"/> </ice:panelGroup> </f:facet> <ice:panelGrid columns="1"> <ice:commandLink action="customer"><ice:outputText value="Customer name" /></ice:commandLink> </ice:panelGrid> </ice:panelCollapsible> </ice:panelGrid> </ice:form> </body> </html> </f:view>
Quelques remarques:
- Je suis complètement nouveau à JSF, alors pardonnez-moi pour toute erreur évidente.
- Dans le fichier d'accueil (le premier) Je n'utilise pas les deux balises en même temps. J'ai collé les deux ici juste pour montrer que j'essaye les deux options.
- J'ai créé les deux fichiers en tant que "fichier JSPX ICEFaces", mais le second a reçu l'extension .jsp.
- Lorsque j'utilise la balise
directive.include
, le fichier inclus est chargé. Mais si je le change, il n'est pas automatiquement republié.
la raison n'est pas clair pour moi, mais je l'ai trouvé une documentation indiquant que nous ne devrions pas utiliser jsp: inclure dans ICEfaces: http: //www.icefaces. org/docs/v1_8_2/htmlguide/devguide/references2.html –
Parce qu'ils encouragent fortement le balisage XML. En passant, avez-vous regardé [Facelets] (http://facestutorials.icefaces.org/tutorial/facelets-tutorial.html)? C'est à peu près une extension sur JSPX et depuis Java EE 6 le successeur de JSP. Il y a un ''. –
BalusC
Oui, j'essaie d'utiliser Facelets, mais je suis un peu confus mais encore. De toute façon, je n'utilise pas jsp: include plus. jsp: directive.include fonctionne bien et l'actualisation de tout fichier modifié n'est pas si importante. –