IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

Problème conc. <html:link> dans Struts


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut Problème conc. <html:link> dans Struts
    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).
    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>
    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).
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ taglib prefix="html" uri="WEB-INF/struts-html.tld" %>
    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
     
        <li><a href="MC_InfCen_02.jsp">Marques de véhicules</a></li>
    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><html:link page="/MC_InfCen_02.do" >Marques de véhicules</html:link></li>
    , une erreur apparaît :
    ... Exception in JSP: /Vues/MC_InfGau_1.jsp:19
    ...
    19: <li><html:link page="/MC_InfCen_02.do" >
    ...
    cause mère : java.lang.NullPointerException
    Remarque 2:
    - 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 :
    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>
    , faisant ainsi appel à struts-config.xml qui contient l'élément 'action' appelant 'MC_InfCen_02.jsp'.

    Question principale de cette session :
    Comment encoder correctement l'URL de la page à appeler dans
    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>
    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' ?

    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
    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"
            />
            ...
    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'.

    Mon environnement de développement :
    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
    Y a-t-il une âme illuminée ? Merci bcp d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut <html:link> dans Struts
    Correction : "../WEB
    Donc, à part la page de base, toutes mes pages JSP contiennent au début la directive :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ taglib prefix="html" uri="../WEB-INF/struts-html.tld" %>
    pour "remonter" de "Vues" au Contexte et "redescendre" dans "WEB-INF".

    Mais le problème persiste.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut <html:link> dans Struts
    Correction #2: "/Véhic/MC_InfCen_02.do" sans "Web Pages/Vues/".

    Le but à atteindre n'est-il pas qu'à partir du code de la page 'Vues/MC_InfGau_1.jsp', Struts génère en fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        <li><a href="/Véhic/MC_InfCen_02.do">Marques</a></li>
    , faisant ainsi appel à struts-config.xml qui contient l'élément 'action' appelant 'MC_InfCen_02.jsp'.

    Rappel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    <action-mappings>
            <action path="/MC_InfCen_02"
                    type="org.apache.struts.actions.ForwardAction"
                    parameter="/Vues/MC_InfCen_02.jsp"
            />
    ...
    Je n'ai pas encore trouvé l'erreur ...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 263
    Par défaut <html:link> dans Struts
    Trouvé par David Newton :
    L'attribut "name" de Struts 1.1 a été rayé et ôté dans Struts 1.2 .
    http://www.coderanch.com/t/432776/St...nk-with-Struts

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problême de syntaxe <html:link>
    Par bruno.getJava() dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 18/03/2011, 14h30
  2. Réponses: 1
    Dernier message: 28/06/2010, 11h08
  3. [STRUTS] balise <bean:write> dans <html:link>
    Par adrien.nicolet dans le forum Struts 1
    Réponses: 8
    Dernier message: 25/10/2005, 08h56
  4. Réponses: 5
    Dernier message: 12/05/2004, 16h37
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo