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 :

[Struts:Layout] impossible de parcourir les noeuds de Treeview


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 13
    Points
    13
    Par défaut [Struts:Layout] impossible de parcourir les noeuds de Treeview
    Bonjour,
    J'ai une application qui utilise struts layout pour avoir une arborescence (layout treeview), Le problème c'est que je n'arrive pas à parcourir mes noeuds. Lorsque jessaye de parcourir un noeud, j'obtiens l'erreur: Objet attendu qui pointe sur la ligne suivante de l'action.do générée de mon strutsAction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <tr><td valign="top" height="100%" style="background-image: url(/simulateur/config/treeLine.gif); background-repeat: repeat-y; " width="16"><a href="javascript://" onclick="return changeTree('java*0','/simulateur/config/treeNodeOpen.gif','/simulateur/config/treeNodeClose.gif');" target="treeFrame"><img src="/simulateur/config/treeNodeClose.gif" id="treeViewImagejava*0" border="0" width="16" height="22" align="middle"></a></td><td valign="top" colspan="2"><table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td width="1"></td><td>meditel</td><td align="right" nowrap></td></tr><tr><td valign="top" colspan="2" id="treeViewjava*0" style="display:none;"><table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td valign="top" height="100%" style="background-image: url(/simulateur/config/treeLine.gif); background-repeat: repeat-y; " width="16"><img src="/simulateur/config/treeItem.gif" border="0" width="16" height="22"></td><td width="1"></td><td>7570</td><td align="right" nowrap></td></tr><tr><td valign="top" height="100%" style="background-image: url(/simulateur/config/treeLine.gif); background-repeat: repeat-y; " width="16"><img src="/simulateur/config/treeItem.gif" border="0" width="16" height="22"></td><td width="1"></td><td>5566</td><td align="right" nowrap></td></tr><tr><td valign="top" height="100%" style="background-image: url(/simulateur/config/treeLine.gif); background-repeat: repeat-y; " width="16"><img src="/simulateur/config/treeItem.gif" border="0" width="16" height="22"></td><td width="1"></td><td>alcatel</td><td align="right" nowrap></td></tr><tr><td valign="top" height="100%" width="16"><img src="/simulateur/config/treeItemLast.gif" border="0" width="16" height="22"></td><td width="1"></td><td>fhgdfghjfd</td><td align="right" nowrap></td></tr></table></td></tr></table></td></tr><tr><td valign="top" height="100%" width="16"><a href="javascript://" onclick="return changeTree('java*1','/simulateur/config/treeNodeOpenLast.gif','/simulateur/config/treeNodeCloseLast.gif');" target="treeFrame"><img src="/simulateur/config/treeNodeCloseLast.gif" id="treeViewImagejava*1" border="0" width="16" height="22" align="middle"></a></td><td valign="top" colspan="2"><table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td width="1"></td><td>maroctelecom</td><td align="right" nowrap></td></tr><tr><td valign="top" colspan="2" id="treeViewjava*1" style="display:none;"><table border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td valign="top" height="100%" style="background-image: url(/simulateur/config/treeLine.gif); background-repeat: repeat-y; " width="16"><img src="/simulateur/config/treeItem.gif" border="0" width="16" height="22"></td><td width="1"></td><td>7570</td><td align="right" nowrap></td></tr><tr><td valign="top" height="100%" style="background-image: url(/simulateur/config/treeLine.gif); background-repeat: repeat-y; " width="16"><img src="/simulateur/config/treeItem.gif" border="0" width="16" height="22"></td><td width="1"></td><td>5566</td><td align="right" nowrap></td></tr><tr><td valign="top" height="100%" style="background-image: url(/simulateur/config/treeLine.gif); background-repeat: repeat-y; " width="16"><img src="/simulateur/config/treeItem.gif" border="0" width="16" height="22"></td><td width="1"></td><td>alcatel</td><td align="right" nowrap></td></tr><tr><td valign="top" height="100%" width="16"><img src="/simulateur/config/treeItemLast.gif" border="0" width="16" height="22"></td><td width="1"></td><td>fhgdfghjfd</td><td align="right" nowrap></td></tr></table></td></tr></table></td></tr></table><iframe id="treeFrame" name="treeFrame" style="width:0px; height:0px; border: 0px" src="about:blank"></iframe></td></tr></table></td></tr></table>
    je ne sais exactement où est le problème.
    Merci d'avance.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il faudrait plutôt nous montrer le code de constitution du treeview.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Bonjour,
    le code dans la page jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <layout:treeview name="java" />


    Le code dans la classe action:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    public class TreeViewAction extends DispatchingAction  {
     
    public ActionForward a1(ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws IOException, ServletException {
     
    Collection l=null;
    	Collection e=null;
    	ReseauDao res=new ReseauDao();
    	EquipementDao equ=new EquipementDao();
    	l=res.GetReseau();
    	e=equ.GetEquipement();
    	MenuComponent master = new MenuComponent() ;
        master.setName("java") ;
    	MenuComponent menuCategories = null ;
    	MenuComponent menuSousCategories = null ;
    	Iterator iter = l.iterator();
    	while(iter.hasNext())
    	{
    		ReseauForm reseau=(ReseauForm)iter.next();
    		String nomCategorie = (String) reseau.getNomReseau();
    	        menuCategories = new MenuComponent() ;
    	        menuCategories.setTitle(nomCategorie) ;
    	        Iterator iter1 = e.iterator();
    	        	while(iter1.hasNext())
    	        	{
    	        		EquipementForm equipement=(EquipementForm)iter1.next();
    	        		String nomSousCategorie = (String) equipement.getTypeEquipement();
     
    	        		menuSousCategories=new MenuComponent();
    	        		menuSousCategories.setTitle(nomSousCategorie);
    	        		menuCategories.addMenuComponent(menuSousCategories);
    	        	}
     
    	        master.addMenuComponent(menuCategories) ;
        }
    	master.setStyle("display:true");
    	MenuRepository menuRepository = new MenuRepository();
        menuRepository.addMenu(master);
        if(request.getSession().getAttribute(MenuRepository.MENU_REPOSITORY_KEY)==null){
        	request.getSession().setAttribute(MenuRepository.MENU_REPOSITORY_KEY, menuRepository); }
        	else{
        	((MenuRepository)request.getSession().getAttribute(MenuRepository.MENU_REPOSITORY_KEY)).addMenu(master); }
     
        return mapping.findForward("success");
    }
    dans le struts-config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <!-- ========== Action Mapping Definitions =============================== -->
     
    <action path="/TreeViewAction" 
    type="action.TreeViewAction"	
    name="ReseauForm"		
    scope="session" 
    parameter="reqCode"
    			attribute="ReseauForm">
     
     
    	<forward name="success" path="/jsp/treeview.jsp"/>
    	 </action>
     
    <!-- ========== Message Resources Definitions ============================ -->
     
     
    <message-ressources parameter="action.struts.ApplicationRessources" null="false"/>
    	<message-ressources key="resourceLayout" parameter="action.struts.Struts-Layout_default"/>

    Merci.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    On peut avoir le stackTrace aussi ?

    A+

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    As-tu défini l'Action TreeviewAction de Struts-Layout dans le struts-config.xml comme indiqué ici ?

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    dans struts-config j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    </action>
     
     
       	 <action path="/TreeViewAction" 
    type="action.TreeViewAction"	
    name="ReseauForm"		
    scope="session" 
    parameter="reqCode"
    attribute="ReseauForm">
     
     
    	<forward name="success" path="/jsp/treeview.jsp"/>
    	 </action>
    où:
    path: definit l'action dans ma forme jsp qui fait appel au treeview.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <html:form action="TreeViewAction">
    <html:submit>Envoyer</html:submit>
    <INPUT type="hiden" name"reqcode" valu="a1">
    </html:form>
    type:la classe action qui construit mon treeview dynamiquement.

    eqtt ce que je dois changer cette configuration?
    merci

  7. #7
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Apparemment, tu n'as pas lu ce qui est écrit dans le lien que je t'ai donné précédemment.
    Si le contenu du treeview est défini dans le repository des menus et si ce contenu est suffisamment important (au moins 50 éléments par défaut), uniquement les noeuds principaux seront chargés. Une requête sera automatiquement effectuée côté serveur via l'action struts-layout '/treeview' afin de charger les autres noeuds si nécessaires. L'action du treeview doit être définie dans le fichier struts-config.xml avec les attributs suivants :

    path="/treeview"
    type="fr.improve.struts.taglib.layout.treeview.TreeviewAction"
    Il faut définir, en plus de ton Action, l'Action fr.improve.struts.taglib.layout.treeview.TreeviewAction de path /treeview dans le struts-config.xml.

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    est ce que je dois ajouter tout simplement ces deux lignes sans faire aucune liaison avec mon action?
    c'est à dire je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <action path="/TreeViewAction" 
    type="action.TreeViewAction"	
    name="ReseauForm"		
    scope="session" 
    parameter="reqCode"
    attribute="ReseauForm">
     
     
    	<forward name="success" path="/jsp/treeview.jsp"/>
    	 </action>
     
    <action path="/treeview" 
    type="fr.improve.struts.taglib.layout.treeview.TreeviewAction" />

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Bonjour,
    le problème persiste encore même si j'ai modifié le struts-config comme vous m'avez indiqué.

  10. #10
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    As-tu inclus les fichiers javascript et le fichier css de Struts-Layout en mettant le tag layout:treeview dans un tag <layout:html> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <layout:html>
       <layout:treeview name="java" />
    </layout:html>
    ou en mettant le tag suivant dans la balise <head> ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <head>
       <layout:skin includeScript="true"/>
    </head>

  11. #11
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    aprés avoir modifié le code comme vous m'avez indiqué, j'ai arrivé à parcourir les noeuds mais les données ne sont plus affichées.
    que dois-je faire?

  12. #12
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Que veux-tu dire par "les données ne sont plus affichées" ?
    Peux-tu montrer la jsp qui permet d'afficher le treeview ?

  13. #13
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Voilà la partie du code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <head>
    <title>Document sans titre</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <layout:skin includeScript="true" />
    </head>
    <body>
    <layout:html>
              <layout:treeview name="java" />
               </layout:html>
    </body>

  14. #14
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Soit tu mets le tag layout:html, soit tu mets le tag layout:skin mais pas les deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <head>
       <title>Document sans titre</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
       <layout:skin includeScript="true" />
    </head>
    <body>
              <layout:treeview name="java" />
    </body>
    Et sinon, tu n'as pas répondu à ma première question : Que veux-tu dire par "les données ne sont plus affichées" ?

  15. #15
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    c'est bon ça marche maintenant, le problème c'était que les données étaient écrites en blanc sous un arrière plan blan, c'est pour cela que j'ai pas pu les visualiser du premier coup.

    Merci beaucoup pour ton aide c_nvy .

  16. #16
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    De rien.

    Effectivement, le fait d'avoir ajouté la balise layout:skin a inclus le css de Struts-Layout et donc a fixé des couleurs par défaut pour les background et les textes.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/07/2008, 16h58
  2. [eZ Publish] Impossible de parcourir le noeud Users
    Par tamiii dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 16/05/2008, 10h32
  3. Réponses: 2
    Dernier message: 25/02/2008, 09h35
  4. Parcourir les noeuds d'un XML
    Par Maglight dans le forum Delphi
    Réponses: 2
    Dernier message: 17/10/2006, 17h41
  5. Parcourir les noeuds d'un TreeView
    Par Andry dans le forum Composants VCL
    Réponses: 4
    Dernier message: 08/11/2005, 08h11

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