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][layout:tabs] attribut selectedTabKeyName en session


Sujet :

Struts 1 Java

  1. #1
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut [Struts-Layout][layout:tabs] attribut selectedTabKeyName en session
    Bonjour, est il possible de gardé l'attribut key du tag layout:tab en session ? si oui comment faire ?
    Merci

  2. #2
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    ou plutot l'attribut selectedTabKeyName.
    Merci

  3. #3
    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
    Salut,

    D'après la doc Struts-Layout, ce n'est pas possible :
    fr.improve.struts.taglib.layout.util.TabsUtil.setCurrentTab(selectedTabKeyName, key, request, response)
    Pourquoi as-tu besoin de le mettre en session ?

  4. #4
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Salut, ben en fait j'ai des onglets, layout:tabs, et j'ai un arbre. Lorsque je clique sur un élément de l'arbre cela m'affiche des informations dans mes onglets. J'ai une série de plusieurs onglets, log, erreur, etc....Lorsque je clique sur un élément de mon arbre qui possède un identifient j'ai les bonnes infos correspondant au noeud qui sont affiché dans mes onglets. Le problème c'est qu'a chaque fois que je clique sur un noeud de l'arbre, c'est le premier tab qui se réaffiche a chaque fois. Je voudrais pouvoir rester sur le tab ou j'était avant d'avoir cliqué sur le noeud. Par exemple je suis sur l'onglet log, j'affiche les log correspondant à un noeud. Je voudrais voir ensuite les logs correspondant à un autre noeud, mais lorsque je clique sur le noeud je revient sur le premier tab si mes tabs sont dans cet ordre erreur, log, je reviendrai sur l'onglet erreur a chaque fois que je clique sur un noeud de l'arbre.
    Tu m'as compris en gros ?
    Merci

  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
    Imaginons que tu aies ceci dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <layout:tabs styleClass="FORM" width="400" selectedTabKeyName="tab">
    	<layout:tab key="onglet1" href="onglet1Action.do?tabKey=onglet1">
    		<%@include file="tab1.jsp" %>
    	</layout:tab>
    	<layout:tab key="onglet2" href="onglet2Action.do?tabKey=onglet2">
    		<%@include file="tab2.jsp" %>
    	</layout:tab>
    </layout:tabs>
    dans onglet1Action et onglet2Action, tu pourrais coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String tabKey= request.getParameter("tabKey") ;
    request.getSession().setAttribute("tabKey",tabKey) ;
    et dans chaque Action correspondant à chaque noeud :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String tabKey = (String) request.getSession().getAttribute("tabKey") ;
    if ( tabKey != null) { TabsUtil.setCurrentTab("tab",tabKey,request,response) ; }
    Ainsi, tu te positionnes toujours sur le dernier onglet sélectionné.

    A tester. Je pense que ça devrait fonctionner.

  6. #6
    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
    C'est curieux, par défaut, si tu réaffiches la même page, il se repositionne sur le dernier onglet quitté avec :

    <layout:tabs .... selectedTabKeyName="groupeTab">
    ...
    </layout:tabs>

    Bien sûr, groupeTab doit être un nom unique (si tu as le même nom sur plusieurs pages, ça va poser problème...)

    Sinon, la solution de c_nvy devrait fonctionner

    A+

  7. #7
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Dans ton code selectedTabKeyName ne devrait pas être tabKey aussi ?

  8. #8
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Lorsque je fait request.getParameter("tabKey") ensuite je fais un System.out.println(tabKey), j'ai null.

  9. #9
    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
    Tu as quelle version de Struts-Layout ?

  10. #10
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    J'ai la dernière version.
    C'est curieux, par défaut, si tu réaffiches la même page, il se repositionne sur le dernier onglet quitté avec :
    Je pense que cela vient du fait qu'au niveau le plus haut j'ai déja 2 onglets.
    un onglet Général et un onglet Détail.
    Dans l'onglet Détail j'ai mon arbre et mes autres onglets. Lorsque je clique sur un noeud de mon arbre, l'action forward sur "maJsp.jsp?tab=Détail"

  11. #11
    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
    Ce n'est pas incompatible, du moment que tu as 2 noms différents pour l'attribut "selectedTabKeyName"

    Il positionne l'information dans le request et dans un cookie, donc, normalement, tu te retrouves dans le dernier onglet (à moins d'utiliser TabsUtil.setCurrentTab(...) entre temps, bien sûr...)

    A+

  12. #12
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Maintenant j'ai deux noms différents : j'ai essayé de récupéré dans l'action de mon onglet avec request.getParameter("tabKey"); mais lorsque je veux afficher la String j'ai null...

  13. #13
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Mes tab sont constitué de cette façon est ce que cela peut etre la cause de mon problème :
    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
     
    <layout:tabs width="100%" selectedTabKeyName="tabKey" styleClass="FORM">
     
    		<layout:tab key="Etat" href="tabs2.jsp?tabKey=Etat" width="100" >
     
    				<iframe name="IFEtat" src="etatTab.do" width="790" height="400" scrolling="yes" frameborder="0" align="bottom" 
    					style="background-color: #c0c0c0;">Le navigateur ne parvient pas à afficher 
    					la fenetre contenant l'arbre
    				</iframe>
     
    		</layout:tab>
    		<layout:tab key="Commandes" href="tabs2.jsp?tabKey=Commandes" width="100">
     
    				<iframe name="IFCommandes" src="commandeTab.do" scrolling="yes" frameborder="0" align="bottom" 
    					width="790" height="400" style="background-color: #c0c0c0;">Le navigateur ne parvient pas à afficher 
    					la fenetre contenant l'arbre
    				</iframe>
     
    		</layout:tab>
    .....
    cette page jsp est elle même contenu dans un iframe.

  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
    C'est dans les Actions qu'il faut passer le paramètre tabKey.

    Essaie comme ceci :
    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
    <layout:tabs width="100%" selectedTabKeyName="tabKey" styleClass="FORM">
    	<layout:tab key="Etat" href="tabs2.jsp" width="100" >
    		<iframe name="IFEtat" src="etatTab.do?tabKey=Etat" width="790" height="400" scrolling="yes" frameborder="0" align="bottom" 
    			style="background-color: #c0c0c0;">Le navigateur ne parvient pas à afficher 
    			la fenetre contenant l arbre
    		</iframe>
    	</layout:tab>
    	<layout:tab key="Commandes" href="tabs2.jsp" width="100">
    		<iframe name="IFCommandes" src="commandeTab.do?tabKey=Commandes" scrolling="yes" frameborder="0" align="bottom" 
    			width="790" height="400" style="background-color: #c0c0c0;">Le navigateur ne parvient pas à afficher 
    			la fenetre contenant l arbre
    		</iframe>
    	</layout:tab>
    ...
    <layout:tabs>

  15. #15
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Salut c_nvy, merci pour ta correction c'est vrai que l'a je passe bien en paramètre la valeur de tabKey \o/, mais si l'on ne précise pas dans href de layout:tab le tabKey on ne peut pas changer de tab. Donc il faut passer la valeur à l'action et aussi dans l'attribut href. Enfin encore une fois un grand merci a toi pour ton aide et ta patience dans certain cas (Je te dois au moins un resto. LoL).
    Bon a +

  16. #16
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Juste une derniere question :
    dans l'action des tree node quand tu met if(tab!=null) tab représente quoi. C'est une valeur récupérée d'ou ?
    Merci

  17. #17
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Donc maintenant je n'arrive plus a changé de tab lol, je suis pas sorti de l'auberge. Une fois que je passe dans l'action des treenode plus moyen de changer de tab, a moin de fermer le navigateur. Je n'ai pas besoin de redémarrer le serveur, juste fermeture du navigateur suffit a ce que je puisse a nouveau changé de tab. J'ai pourtant pris soion de retirer de la session l'attribut tabKey dans toutes mes actions. T'aurais une idée ?

  18. #18
    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
    Citation Envoyé par david06600
    Juste une derniere question :
    dans l'action des tree node quand tu met if(tab!=null) tab représente quoi. C'est une valeur récupérée d'ou ?
    Merci
    Salut !

    Désolée, c'est une erreur de ma part. C'est parce que j'ai changé le nom de la variable tab en tabKey et j'ai oublié de la modifier dans le if.

  19. #19
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Ok merci j'avais corrigé dslé d'avoir posté pour sa.

  20. #20
    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
    Citation Envoyé par david06600
    Donc maintenant je n'arrive plus a changé de tab lol, je suis pas sorti de l'auberge. Une fois que je passe dans l'action des treenode plus moyen de changer de tab, a moin de fermer le navigateur. Je n'ai pas besoin de redémarrer le serveur, juste fermeture du navigateur suffit a ce que je puisse a nouveau changé de tab. J'ai pourtant pris soion de retirer de la session l'attribut tabKey dans toutes mes actions. T'aurais une idée ?
    Je pense qu'il faut coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TabsUtil.setCurrentTab("tab",tabKey,request,response) ;
    dans chacune des Actions des noeuds et aussi dans chacune des Actions des onglets.
    Est-ce bien ce que tu as fait ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/10/2009, 11h37
  2. Réponses: 6
    Dernier message: 22/06/2007, 16h51
  3. [Struts-Layout] Treeview - lowsrc attribute
    Par fbellavance dans le forum Struts 1
    Réponses: 8
    Dernier message: 07/03/2007, 23h14
  4. [Struts-Layout][layout:date] attribut property
    Par nikoo_27 dans le forum Struts 1
    Réponses: 9
    Dernier message: 02/11/2006, 15h38
  5. [Struts-Layout][layout:tabs] selectedTabKeyName
    Par david06600 dans le forum Struts 1
    Réponses: 1
    Dernier message: 27/10/2006, 21h50

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