Développée à l'origine en JSP, tous les appels de mon application MVC se passent bien. Simplifié : J'ai une <frameset> qui sert de page de base et qui contient à gauche (SurfInfGau) un menu dont les items sont tous des hyperliens appelant des pages devant figurer dans la partie de droite = centrale (SurfInfCent).
Lorsque je transforme mes pages en Struts, en guise d'exercice pour l'apprendre, l'un des problèmes qui surgissent est le suivant : Au démarrage, je n'obtiens plus le menu (gauche), alors que j'obtiens bien la première page (droite).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <frameset> <frame src="Vues/MC_InfGau_1.jsp" name="SurfInfGau" id="SurfInfGau" /> <frame src="Vues/MC_InfCen_01.jsp" name="SurfInfCent" id="SurfInfCent" /> </frameset>
Remarque 1: La page de base est la seule dont les appels du menu (MC_InfGau_1.jsp) et de la première page à afficher (MC_InfCen_01.jsp) restent en JSP. Donc à part la page de base, toutes mes pages JSP contiennent au début la directive :
Je n'ai aucun problème si le code de la page 'MC_InfGau_1.jsp' contient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <%@ taglib prefix="html" uri="WEB-INF/struts-html.tld" %>
Si je substitue le code html d'un seul des liens du menu par l'équivalent Struts (balise définie dans 'struts-html.tld')
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<li><a href="MC_InfCen_02.jsp">Marques de véhicules</a></li>
, une erreur apparaît :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<li><html:link page="/MC_InfCen_02.do" >Marques de véhicules</html:link></li>
Remarque 2:... Exception in JSP: /Vues/MC_InfGau_1.jsp:19
...
19: <li><html:link page="/MC_InfCen_02.do" >
...
cause mère : java.lang.NullPointerException
- A part le fichier JSP de base, tous les autres se trouvent bien dans le répertoire 'Web Pages/Vues'.
Or nous savons que la balise '<html:link>' génère un lien pointant sur '/C/page', où ...
- 'C' est le contexte de l'application : 'Véhic'
- 'page' est l'URL indiquée dans l'attribut 'page' de la balise.
Le but à atteindre est qu'à partir du code de la page 'Vues/MC_InfGau_1.jsp', Struts génère en fait :
, faisant ainsi appel à struts-config.xml qui contient l'élément 'action' appelant 'MC_InfCen_02.jsp'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<li><a href="/Véhic/Web Pages/Vues/MC_InfCen_02.do">Marques de véhicules</a></li>
Question principale de cette session :
Comment encoder correctement l'URL de la page à appeler dans
pour qu'il n'y ait plus d'erreur et que le menu '/Vues/MC_InfGau_1.jsp' apparaisse comme il se doit et sache appeler la page 'MC_InfCen_02.jsp' ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<li><html:link page="/MC_InfCen_02.jsp" >Marques de véhicules</html:link></li>
Remarques 3:
- Les fichiers 'web.xml', 'struts-config.xml' et 'struts-html.tld' se trouvent bien dans le répertoire 'Web Pages/WEB-INF'.
- Le fichier 'web-xml' contient bien le <servlet> et le <servlet-mapping> qu'il faut pour utiliser l'action 'ActionServlet'.
- Le fichier 'struts-config.xml' contient
pour le cas où les <form> ou bien URLs d'autres pages (à figurer dans la partie de droite) devraient aussi pouvoir appeler cette page '/Vues/MC_InfCen_02.jsp'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <action-mappings> <action path="/MC_InfCen_02" type="org.apache.struts.actions.ForwardAction" parameter="/Vues/MC_InfCen_02.jsp" /> ...
Mon environnement de développement :
Y a-t-il une âme illuminée ? Merci bcp d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 - IDE NetBeans 6.1 - Serveur Tomcat 5.0 - JSP - JSTL 1.1 - Java JDK 1.6.0_07
Partager