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

Servlets/JSP Java Discussion :

[JSP] Charger une liste déroulante avec contenu d'une base


Sujet :

Servlets/JSP Java

  1. #1
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 2
    Points : 4
    Points
    4
    Par défaut [JSP] Charger une liste déroulante avec contenu d'une base
    Bonjour,

    Je développe un petit site web en J2E. J'ai une jsp sur laquelle il y a une liste déroulante. J'aimerais que les options de la liste déroulante soient issues d'une de mes tables de ma BDD MySQL.

    J'espère que je ne fais pas trop court pour un problème qui va vous sembler simple mais ne l'est pas pour moi qui suis débutant.

    A noter que je n'utilise pas d'outils comme Hibernate.

  2. #2
    Membre éprouvé
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Points : 950
    Points
    950
    Par défaut Volume de données echangé par une applet
    Bonjour,
    De mon coté, je ferai ceci si je voudrais simplifier les choses:
    Si j’ai une liste d’auteurs dans ma base, dans une classe qui traite les données, avec une requête toute simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (select nom_auteur from AUTEUR)
    je récupère ces informations que je vais mettre dans un bean que je stock dans un ArrayList.

    Puis à partir de ma JSP, j’affiche cette structure (ArrayLis) comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ArrayList lesAuteurs =  tdonne.SelectAuteur(""); 
    //SelectAuteur est la methode qui renvoie le ArrayList
     
    Iterator iterator = lesAuteurs.iterator();
     
    out.println("<select name=Auteurs style='color: white; background-color: black' multiple size = 16>");
     
    while(iterator.hasNext())
    	{
    		 Auteur auteur =(Auteur) iterator.next();	             	   
    	       out.println("<option value = '"+ auteur.getNom());
                   out.println("</Select>");
          }

    Auteur est le bean de ma classe et Auteur.getNom renvoie le nom de l’auteur.
    On boucle dans l’iterator et on met tous les auteurs dans la liste déroulante.

    Merci

  3. #3
    Membre éclairé Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612
    Points : 690
    Points
    690
    Par défaut
    Cela est un problème classique et pour le traiter j'ai écris un petit bean "MemoryTable" qui traite cela. Il fonctionne sur le principe des ArrayList, mais est résident en mémoire ce qui permet de limiter les rechargements.

    Il est telechageable (avec son code source bien sur) ici :
    http://www.berthou.com/fr/2008/02/08...es-de-valeurs/

    Exemple d'utilisation : Chargement initial
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <%@ page language="java" import="com.berthou.sql.*"%>
    <%
    java.sql.Connection conn = .... ; // Create your connection
     
    // Load a hard coded liste
    MemoryTable.loadListe("TEST_L_ETAT","    = ;V=Valide;E=En erreur;I=Incomplete;" ) ;
     
    // Load a SQL Query liste
    // Recherche du code service et du libelle des services actifs
    String sql = "select cdserv, libelle from service where status = 'O' " ;
    MemoryTable.loadQuery(conn, "TBL_SERV",sql ) ;
    %>

    Recherche des valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <%@ page language="java" import="com.berthou.sql.*"%>
    ....
    <% String service = "1305" ; %>
    Service : <%=service%> - <%=MemoryTable.getValue("TBL_SERV", service)%> 
    (affiche Service : 1305 - Libelle du service1305)
     
    Service : 
    <select name="service"><%=MemoryTable.getListe("TBL_SERV", service)%></select>
    (construit une combobox en activant le service demandé)
    - Informaticien passionné
    - ( java, c++, cobol, php, asp, ... )
    - http://www.berthou.com/fr/

  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
    Tu peux faire quelque chose comme ça
    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
     
    ...
    <select name="MonSelect">
    <%
        Connection connection = null;
        Statement stmt = null;
        ResultSet rs = null;
        
        try
        {
            Class.forName("package.et.NomDeClasseDuDriverJDBC");
            connection = DriverManager.getConnection("url", "user", "password");
            stmt = connection.createStatement();
            rs = stmt.executeQuery("select id, texte from MaTable");
            while (rs.next())
            {
                out.println("<option value=\"" + rs.getString(1) + "\">" + rs.getString(2) + "</option>");
            }
        }
        catch (Exception e)
        {
            // ... on traite l'exception si besoin ...
        }
        finally
        {
            // Libération des ressources (incontournable)
            // =========================
            if (rs != null) try { rs.close(); } catch (Exception e) {}
            if (stmt != null) try { stmt.close(); } catch (Exception e) {}
            if (connection != null) try { connection.close(); } catch (Exception e) {}
        }
    %>
    </select>
    ...
    Il y a bien d'autres manières de procéder, si tu en veux d'autres, dit-le

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/05/2013, 09h39
  2. Réponses: 2
    Dernier message: 11/05/2013, 12h19
  3. Réponses: 1
    Dernier message: 02/05/2013, 20h19
  4. Réponses: 2
    Dernier message: 28/05/2007, 15h37
  5. Avoir un contenu de liste déroulante différent par rapprot à une liste déroulante
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 19/10/2006, 08h07

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