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 :

Création d'une liste déroulante ?


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Par défaut Création d'une liste déroulante ?
    Bien le bonjour,

    Je viens ici en manque de résultats lors de mes recherches. Pourtant mon besoin est net : je souhaiterais afficher des listes déroulantes dans ma jsp. Une première liste prendrait des champs contenus pour le moment dans un fichier ressource. Une seconde liste serait issue de données récupérées de ma base de données MySQL.

    Ma question est la suivante : Comment créé une liste déroulante dans ma jsp qui puisse contenir ces données (pour les deux type de champs : champs de la BDD et champs d"un fichier ressource) ? Avez vous des exemples ?

    Merci pour tout.

  2. #2
    Membre éclairé Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Bonjour,

    Je vais essayer d'être clair dans mes explications, car ce n'est pas très facile à expliquer.

    Pour une liste déroulante issue d'une base de donnée :
    1) il faut tout d'abord écrire une fonction java, qui s'occuppe de récupérer la liste de tes éléments dans la base, et te retourne une ArrayList ou un Vector.
    2) Grâce à ceci, dans ta classe Action de ta page jsp, tu fais appel à cette fonction, et tu attribus ta collection au composant de ta page jsp (setAttribute).
    3) Pour finir, dans ta page jsp, au moyen de ta balise logic present, tu liste les données pour les afficher dans une liste déroulante.

    exemple :
    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
     
    Dans l'Action :
     
    // Appel de la fonction pour récupérer une liste de noms issues de la base
    Vactor laVecteur = (Vector) EntiteAvecDroit.getEntites();
    // On passe la liste à la page jsp pour l'afficher
    pRequest.setAttribute("types", laVecteur);
     
     
    Dans la jsp :
     
    <logic:present name="types">
      <bean:define id="laListeTypes" name="types" scope="request" />
      <bean:size id="lnNbTypes" name="laListeTypes" />
      <select size="1" name="type" class="data" style="width:240px" id="leType">
        <option value="">(Choisissez)</option>
        <logic:iterate id="lType" name="laListeTypes">
           <bean:define id="lsTypeEntite" name="lType" property="typeEntite" type="String"/>
           <option value="<%=lsTypeEntite%>"><%=lsTypeEntite%></option>
         </logic:iterate> 
       </select>
    </logic:present>
    Par contre, c'est quoi comme type de fichier, tes ressources ?

  3. #3
    Membre confirmé Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Par défaut
    Citation Envoyé par bouchette63
    Je vais essayer d'être clair dans mes explications, car ce n'est pas très facile à expliquer.
    Merci, c'est déjà beaucoup plus clair pour moi qui n'ai rien trouvé d'explicite !

    Citation Envoyé par bouchette63
    Par contre, c'est quoi comme type de fichier, tes ressources ?
    Je ne sais pas encore. Les données qui sont concernées sont des noms de pays prédéfinis. Je ne sais pas ce qui est le mieux : créer un vecteur contenant tous ces noms de pays, créer un fichier pays.properties, une autre solution ? Je ne peux pas encore me décider car je ne sais pas quelle solution sera la meilleure pour simplifier la création de ma jsp avec listes déroulantes.

    Des conseils peut-être ?

  4. #4
    Membre éclairé Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Citation Envoyé par ultracoxy
    Des conseils peut-être ?
    Moi aussi j'ai eu besoin de faire a peu près la même chose, en sachant que des modifications pouvaient avoir lieu plus tard. J'ai donc utilisé un fichier properties.
    Ce dernier est chargé dans ma classe Action de cette manière :

    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
     
    Fichier droits.properties :
     
    droit.nomstotal = 3
    droit.nom0 = Crédit mutuel
    droit.nom1 = BNP Paribas
    droit.nom2 = Chalus
     
    Dans mon Action :
     
     // Chargement fichier de config properties
    Properties options = new Properties();
    InputStream input = servlet.getServletContext().getResourceAsStream("WEB-INF/conf/app-droits.properties");
    options.load(input);  
    input.close();
     
    // récupération des paramètres du fichier de config
    int nbTypes = Integer.parseInt(options.getProperty("droit.nomstotal"));
    String[] laListeNoms = new String [nbTypes];
    for (int lnCompt = 0; lnCompt < nbTypes; lnCompt++) {
       laListeNoms [lnCompt] = options.getProperty("droit.nom" + lnCompt);
    }
    Je ne sais pas si cela peut t'aider. Mais voila comment j'ai fait. Il n'y a plus qu'ensuite à faire passer ton tableau String à ta jsp, de la même manière qu'une collection (setAttribute).

  5. #5
    Membre confirmé Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Par défaut
    Merci bouchette63, je devrais m'en sortir avec tes explications.

  6. #6
    Membre confirmé Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Par défaut
    Citation Envoyé par bouchette63
    3) Pour finir, dans ta page jsp, au moyen de ta balise logic present, tu liste les données pour les afficher dans une liste déroulante.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dans la jsp :
     
    <logic:present name="types">
      <bean:define id="laListeTypes" name="types" scope="request" />
      <bean:size id="lnNbTypes" name="laListeTypes" />
      <select size="1" name="type" class="data" style="width:240px" id="leType">
        <option value="">(Choisissez)</option>
        <logic:iterate id="lType" name="laListeTypes">
           <bean:define id="lsTypeEntite" name="lType" property="typeEntite" type="String"/>
           <option value="<%=lsTypeEntite%>"><%=lsTypeEntite%></option>
         </logic:iterate> 
       </select>
    </logic:present>
    Ch'tite question .... Je comprends pas bien comment est fait ton code dans la JSP. A quoi correspondent les variables utilisées ? D'où proviennent t'elles ?

    Merci.

  7. #7
    Membre éclairé Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Citation Envoyé par ultracoxy
    Ch'tite question .... Je comprends pas bien comment est fait ton code dans la JSP. A quoi correspondent les variables utilisées ? D'où proviennent t'elles ?
    Merci.
    Bon alors en faisant simple, voici à quoi correspondent chaque variables :

    types : pour récupérer une variable dans ta classe Action grâce à setAttribute (dans l'exemple c'est un Vector)
    laListeTypes : définition de ta variable Vector pour l'utiliser
    type : nom de ton composant
    lType : identifiant pour parcourir toutes les entités comprises dans laListeTypes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <logic:present name="types">
      <bean:define id="laListeTypes" name="types" scope="request" />
      <select size="1" name="type" class="data" style="width:240px">
        <option value="">(Choisissez)</option>
        <logic:iterate id="lType" name="laListeTypes">
           <bean:define id="lsTypeEntite" name="lType" property="typeEntite" type="String"/>
           <option value="<%=lsTypeEntite%>"><%=lsTypeEntite%></option>
         </logic:iterate> 
       </select>
    </logic:present>
    Je sépare cette partie pour mieux cerner l'explication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1 <bean:define id="lsTypeEntite" name="lType" property="typeEntite" type="String"/>
    2 <option value="<%=lsTypeEntite%>"><%=lsTypeEntite%></option>
    Dans mon Vector, j'ai plusieurs lignes d'une table de ma base de donnée (en l'occurrence ici, jai récupéré plusieurs lignes de ma table DBENTITEAVECDROIT, cette dernière possède trois colonne définit par un nom dans mon DbEntiteAvecDroit.hbm.xml (table de mapping) : id, typeEntite et nomEntite).
    Ici je souhaite afficher la liste de mes noms typeEntite contenu dans ma variable de type Vector. Je vais donc définir une variable qui me récupère la donnée (1), et je l'ajoute à ma liste déroulante (2).

    id : identifiant de la donnée récupérée
    property : correspond au nom de la colonne
    type : correspond au type de donnée récupéré
    (property et type définit dans le mapping de la table)


    Voila pour les explications en espérant avoir été clair

  8. #8
    Membre confirmé Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Par défaut
    Merci ! Tu ne pouvais faire mieux !

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

Discussions similaires

  1. [MFC] Retourner une liste d'objets
    Par 1cado dans le forum MFC
    Réponses: 10
    Dernier message: 28/07/2003, 12h11
  2. Faire une liste de device??
    Par jackjack dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2003, 14h43
  3. Réponses: 4
    Dernier message: 24/04/2003, 22h28
  4. Générer une liste
    Par pfredin dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/04/2003, 15h30
  5. tri d'une liste
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 09/01/2003, 18h08

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