Bonjour !
Je développe en JSF une page JSP dans laquelle j'aimerais inclure un header.jspf, un footer.jspf, ainsi qu'un menu.jspf.
Le header et le footer devraient pouvoir être inclus dans chaque page JSP que je vais développer. Par conséquent, j'ai écrit ceci dans mon web.xml :
1 2 3 4 5 6 7 8 9
| <!-- Configuration des pages JSP -->
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<include-prelude>/WEB-INF/jspf/header.jspf</include-prelude>
<include-coda>/WEB-INF/jspf/footer.jspf</include-coda>
</jsp-property-group>
</jsp-config>
<!-- Fin configuration JSP --> |
Quant à mon menu, il ne doit pas être inclus partout, donc je choisis de l'inclure grâce à la directive suivante :
<%@ include file="/WEB-INF/jspf/menu.jspf" %>
Voici un échantillon de mon menu.jspf :
1 2 3 4 5 6 7 8 9 10 11 12
| <%@ page contentType="text/html" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="mh" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="mc" %>
<mc:view>
<mh:form>
<h2>Accueil</h2>
<mh:commandLink action="toInfo" value="Informations"/><br>
<br>
...
</mh:form>
</mc:view> |
Cette inclusion, ne contenant que des liens statiques, marche de façon impeccable.
En revanche, mon header, contenant des EL JSF, ne s'inclut pas comme il faudrait :
Si je respecte le principe du menu, j'obtiens une erreur lors du lancement de l'appli ainsi déployée. Voici alors le code de mon header.jspf :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <%@ page contentType="text/html" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="hh" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="hc" %>
<hc:view>
<div style="-rave-layout: grid" xmlns:i="http://java.sun.com/jsf/html">
<img style="position absolute; border: 0px solid ; width: 1024px; height: 105px;" alt="Banniere"
src="./resources/Banniere.jpg" align="middle" hspace="0" vspace="0">
<hh:commandLink action="#{utilisateur.deconnect}" id="linkDeco" immediate="true"
style="position: absolute; right: 30px; top: 74px">
<hh:outputText value="Se déconnecter"/>
</hh:commandLink>
<hh:outputText value="Bienvenue #{utilisateur.userPseudo} !"
style="position: absolute; right: 30px; top: 54px"/>
</div>
</hc:view> |
Si je procède comme indiqué ci-dessous, je ne visualise sur ma page que le code HTML, et pas le code JSP (autrement dit, seule la bannière apparaît) :
1 2 3 4 5 6 7 8 9 10 11 12
| <?xml version="1.0" encoding="UTF-8"?>
<div style="-rave-layout: grid" xmlns:i="http://java.sun.com/jsf/html">
<img style="position absolute; border: 0px solid ; width: 1024px; height: 105px;" alt="Banniere"
src="./resources/Banniere.jpg" align="middle" hspace="0" vspace="0">
<i:commandLink action="#{utilisateur.deconnect}" id="linkDeco" immediate="true"
style="position: absolute; right: 30px; top: 74px">
<i:outputText value="Se déconnecter"/>
</i:commandLink>
<i:outputText value="Bienvenue #{utilisateur.userPseudo} !"
style="position: absolute; right: 30px; top: 54px"/>
</div> |
Alors comment déclarer mon fichier JSPF :
Merci d'avance
Partager