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:select


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut [Struts-Layout] Layout:select
    Bonjour,

    Comment fait on pour sélectionner par javascript pour forcer la sélection d' un élément de Layout:select étant donné que dans l'élément Layout:select on ne peut pes mettre l'attribut "id".

    code de mon layout:select dans ma jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <layout:select property="langSelected" name="dashBoardTimeKeeperForm" styleClass="width:40;" size="1" >
    	<layout:option value="" key=""/>
    	<layout:optionsCollection property="refLangue" name="dashBoardTimeKeeperForm" label="description" value="code" />
    </layout:select>
    D'avance merci

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    est-ce que tu peux mettre l'attribut 'styleId'?

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut Struts layout , Layout:select
    Non je ne peux pas mettre l'attribut styleId.

  4. #4
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    ton objectif est-il que la liste déroulante affiche une valeur de ta list refLangue? si oui, il faudrait que ton attribut langSelected contienne la valeur de la collection qui devrait etre sélectionnée...

  5. #5
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut Struts layout , Layout:select
    Je suis bien d'accord avec toi jdvacheron. Pour cela j'ai un champ de type input déclaré comme suit dans ma jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input id="remoteLang" name="horaireRemote"
    		type="text" 
    value="<bean:write name="dashBoardTimeKeeperForm" property="langSelected"/>
    ">
    Dans mon javascript je fais référence à ce champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('remoteLang').value = "FR"
    Donc comme mon champ input et mon champ select pointe sur la même propiété de mon bean (langSelected) , je pensais quand mettant à jour le champ input cela selectionnerai automatiquement le champ select. As tu une solution ? ou peut être que ce n'est pas la bonne façon de procéder ?

    Merci pour l'aide

  6. #6
    Expert confirmé

    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
    Par défaut
    Dans l'Action qui s'exécute avant l'affichage du formulaire, il faut initialiser la propriété langSelected du form-bean dashBoardTimeKeeperForm avec la valeur qui doit être pré-sélectionnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DashBoardTimeKeeperForm dashBoardTimeKeeperForm=(DashBoardTimeKeeperForm) form ;
    dashBoardTimeKeeperForm.setLangSelected("FR");

  7. #7
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut
    Je ne déclenche aucune action. Tout se passe dans la jsp.
    Le processus est le suivant :
    Je click dans un item d'une collection. Sur le onchange je déclenche un javascript pour initialiser le combo de mes langues. Je me sers d'un champ input décrit plus haut qui change la valeur de la propriété "langSelected" de mon bean . Mais cela n'a aucun effet sur la préselection de mon des langues.

    Merci c_nvy de l'aide que tu peux m'apporter.

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    bonjour,
    je pense que tu mélanges 2 concepts : la JSP qui s'exécute côté serveur et le javascript qui s'exécute côté client.
    En 1er lieu, c'est le code JSP qui est exécuté et ça construit du code HTML qui est renvoyé sur le client.
    Ensuite, sur le client, c'est le code Javascript qui s'exécute et alors, tu peux mettre à jour le HTML en fonction de certaines actions.
    MAIS, en javascript, tu n'as pas accès aux beans définis dans la JSP... les beans ne sont définis que dans le contexte de la JSP... pour le javascript, ça n'existe pas.
    en écrivant ceci dans ta jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="remoteLang" name="horaireRemote" type="text" value="<bean:write name="dashBoardTimeKeeperForm" property="langSelected"/>">
    tu produis le HTML suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="remoteLang" name="horaireRemote" type="text" value="EN">
    ce HTML servira de base pour le javascript.
    En écrivant ensuite ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('remoteLang').value = "FR"
    tu mets en javascript à l'objet qui a comme Id 'remoteLang' la valeur "FR" à la place de la valeur "EN". Tu ne modifies pas l'objet "select".
    En écrivant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <layout:select property="langSelected" name="dashBoardTimeKeeperForm" styleClass="width:40;" size="1" >
    	<layout:option value="" key=""/>
    	<layout:optionsCollection property="refLangue" name="dashBoardTimeKeeperForm" label="description" value="code" />
    </layout:select>
    tu dois générer du HTML comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="langSelected" style="width:40;" size="1">
    <option value=""></option>
    <option value="FR">Français</option>
    <option value="EN">Anglais</option>
    </select>
    Si dans ton action précédente (avant l'appel à la JSP), tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DashBoardTimeKeeperForm dashBoardTimeKeeperForm=(DashBoardTimeKeeperForm) form ;
    dashBoardTimeKeeperForm.setLangSelected("FR");
    le code HTML généré sera comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="langSelected" style="width:40;" size="1">
    <option value=""></option>
    <option value="FR" selected="selected">Français</option>
    <option value="EN">Anglais</option>
    </select>
    si j'ai bien compris, tu as une autre combo, et tu souhaites lorsque la valeur de la combo change, changer la valeur sélectionnée de la combo des langues.
    Comme le select n'a pas d'attribut "id" (à cause de struts-layout), tu ne peux pas accéder à ton select par la méthode javascript "getElementById".
    Mais, tu peux d'autres façons de faire :
    getElementsByName()
    ou
    document.all.

    donc, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.all["langSelected"].value="FR";
    pour mettre la valeur "FR" dans la combo.
    ton champ "input" ne sert à rien.

  9. #9
    Membre averti
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Par défaut
    Merci pour ta réponse claire mattheox . En fait il me manquait la façon d'accéder à un élément par document.all .
    Merci aussi à ceux qui se sont pencher sur ce problème !

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

Discussions similaires

  1. [Struts-Layout] < layout:select > multiple
    Par jadey dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/10/2009, 19h47
  2. Réponses: 6
    Dernier message: 22/06/2007, 16h51
  3. [struts layout] layout:pager
    Par kamaldev dans le forum Struts 1
    Réponses: 9
    Dernier message: 30/07/2006, 22h51
  4. [Struts] Struts-Layout/layout:collection
    Par dehbi dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/04/2006, 15h06
  5. [struts layout] layout:date
    Par agougeon dans le forum Struts 1
    Réponses: 1
    Dernier message: 14/03/2006, 16h12

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