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

Développement Web en Java Discussion :

[JAVA EE] Création liste déroulante d'objet


Sujet :

Développement Web en Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Par défaut [JAVA EE] Création liste déroulante d'objet
    Bonsoir,

    Alors j'essaye de créer une liste déroulante pour laquelle je dois afficher les attributs de chaque objet (Par exemple : Si je clique sur le nom d'une entreprise dans le select, ça doit afficher le nom, le numéro, le mail... et changer les informations dynamiquement en fonction du nom de l'entreprise) .

    Je vous mets l'exemple ci - dessous d'un projet que j'avais développé en PHP et sur lequel j'ai pu créer une liste déroulante (en cliquant sur un nom d'une plante, ça m'affichait le nom, la photo et la description) :
    Nom : listepl.PNG
Affichages : 1069
Taille : 140,5 Ko

    Actuellement, j'ai pu afficher les enregistrements d'une table dans un tableau (j'utilise PostgreSQL et TomCat server). Et pour mon projet, j'adopte une architecture MVC.

    Je vous mets les fichiers principaux que j'utilise pour pouvoir afficher la table voulue dans un tableau :

    un aperçu:

    Nom : entrepriserv.PNG
Affichages : 1034
Taille : 11,9 Ko


    Dans mon package bean :

    Entreprise.java :

    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
     
    package com.beans;
     
    public class Entreprise{
    	private String ident;
        private String noment;
        private String adresseent;
        private String telent;
     
     
     
        public String getnoment() {
    		return noment;
    	}
    	public void setnoment(String pnoment) {
    		noment = pnoment;
    	}
    	public String getadresseent() {
    		return adresseent;
    	}
    	public void setadresseent(String padresseent) {
    		adresseent = padresseent;
    	}
    	public String gettelent() {
    		return telent;
    	}
    	public void settelent(String ptelent) {
    		telent = ptelent;
    	}
     
    	public String getident() {
    		return ident;
    	}
    	public void setident(String pident) {
    		ident = pident;
    	}  
    }
    Dans mon package dao (le dao et daoImpl) :

    EntrepriseDaoImpl.java :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
     
     
    package com.dao;
     
    import static com.dao.DAOUtilitaire.fermeturesSilencieuses;
    import static com.dao.DAOUtilitaire.initialisationRequetePreparee;
     
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
     
    import com.beans.Entreprise;
     
    public class EntrepriseDaoImpl implements EntrepriseDao {
     
        private static final String SQL_SELECT_PAR_ID = "SELECT * FROM Entreprise where ident=?";
        private static final String SQL_SELECT = "SELECT * FROM Entreprise";
        private static final String SQL_INSERT           = "INSERT INTO Entreprise (ident,noment,adresseent,telent) VALUES (?, ?, ?, ?)";
     
        private DAOFactory          daoFactory;
     
        EntrepriseDaoImpl( DAOFactory daoFactory ) {
            this.daoFactory = daoFactory;
        }
     
     
     
        @Override
        public Entreprise trouver( String id ) throws DAOException {
            return trouver( SQL_SELECT_PAR_ID, id );
        }
     
        @Override
        public ArrayList<Entreprise> trouverTous() throws DAOException {
        	  	return trouverTous( SQL_SELECT);
        }
     
     
        @Override
        public void creer( Entreprise entreprise ) throws DAOException {
            Connection connexion = null;
            PreparedStatement preparedStatement = null;
            ResultSet valeursAutoGenerees = null;
     
            try {
                connexion = daoFactory.getConnection();
                preparedStatement = initialisationRequetePreparee( connexion, SQL_INSERT, true, entreprise.getident(), entreprise.getnoment(), entreprise.getadresseent(),entreprise.gettelent());
                int statut = preparedStatement.executeUpdate();
                if ( statut == 0 ) {
                    throw new DAOException( "Échec de la création de la station, aucune ligne ajoutée dans la table." );
                }
                valeursAutoGenerees = preparedStatement.getGeneratedKeys();
                if ( valeursAutoGenerees.next() ) {
                	entreprise.setident(  valeursAutoGenerees.getString( 1 ) );
                } else {
                    throw new DAOException( "Échec de la création de la station en base, aucun ID auto-généré retourné." );
                }
            } catch ( SQLException e ) {
                throw new DAOException( e );
            } finally {
                fermeturesSilencieuses( valeursAutoGenerees, preparedStatement, connexion );
            }
        }
     
     
        private Entreprise trouver( String sql, Object... objets ) throws DAOException {
            Connection connexion = null;
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            Entreprise entreprise = null;
     
            try {
     
                connexion = daoFactory.getConnection();
     
                preparedStatement = initialisationRequetePreparee( connexion, sql, false, objets );
                resultSet = preparedStatement.executeQuery();
     
                if ( resultSet.next() ) {
                	entreprise = map( resultSet );
                }
            } catch ( SQLException e ) {
                throw new DAOException( e );
            } finally {
                fermeturesSilencieuses( resultSet, preparedStatement, connexion );
            }
     
            return entreprise;
        }
     
     
        private ArrayList<Entreprise> trouverTous( String sql, Object... objets ) throws DAOException {
            Connection connexion = null;
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            Entreprise loueur = null;
            ArrayList<Entreprise> listestation=new ArrayList<Entreprise>();
     
            try {
     
                connexion = daoFactory.getConnection();
     
                preparedStatement = initialisationRequetePreparee( connexion, sql, false, objets );
                resultSet = preparedStatement.executeQuery();
     
                while ( resultSet.next() ) {
     
                	loueur = map( resultSet );
                    System.out.println("nom:"+ loueur.getnoment());
                    listestation.add(loueur);
                }
            } catch ( SQLException e ) {
                throw new DAOException( e );
            } finally {
                fermeturesSilencieuses( resultSet, preparedStatement, connexion );
            }
     
            return listestation;
        }
     
     
     
        private static Entreprise map( ResultSet resultSet ) throws SQLException {
        	Entreprise entreprise = new Entreprise();
        	entreprise.setident(resultSet.getString( "ident" ) );
        	entreprise.setadresseent(resultSet.getString("adresseent"));
        	entreprise.setnoment( resultSet.getString( "noment" ) );
        	entreprise.settelent( resultSet.getString( "telent" ) );
            return entreprise;
        }
     
    }

    EntrepriseDao.java :

    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
     
    package com.dao;
     
    import java.util.ArrayList;
     
    import com.beans.Entreprise;
     
    public interface EntrepriseDao {
     
        void creer( Entreprise entreprise ) throws DAOException;
     
        Entreprise trouver( String noment ) throws DAOException;
     
        ArrayList<Entreprise> trouverTous() throws DAOException;
     
    }
    la JSP listeentreprises.jsp :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    <%@ page pageEncoding="UTF-8" %>
    <%@page import="com.beans.Entreprise"%>
    <%@page import="java.util.ArrayList"%>
     
     
     
    <!DOCTYPE html>
     
    <html>
     
        <head>
     
            <meta charset="utf-8" />
     
            <title>Liste des entreprises</title>
     
            <link type="text/css" rel="stylesheet" href="form.css" />
     
        </head>
     
        <body>
     
    	Liste des entreprises:
           <table border=1>
           <tr>
           		<td> id </td>
           		<td> Nom Entreprise </td>
           		<td> Téléphone </td>
           		<td> Adresse de l'entreprise </td>
     
           </tr>
            <% ArrayList<Entreprise> listeentreprises =(ArrayList<Entreprise>) request.getAttribute("listeentreprises"); %>
     
           <% if (listeentreprises!=null)
        	   {
        	   	for (Entreprise inscrit : listeentreprises) { %>
     
     
           		<tr>
     
           			<td>
     
        				<% out.println(inscrit.getident()); %>
        			</td>
        			<td>
     
        				<% out.println(inscrit.getnoment()); %>
        			</td>
        			<td>
     
        				<% out.println(inscrit.gettelent()); %>
        			</td>
     
        			<td>
     
        				<% out.println(inscrit.getadresseent()); %>
        			</td>
     
     
     
          		 </tr>
     
    	   <%		}
        	   }
    	   %>
     
     
     
           </table>
           <li><a href = "index.html"> Retourner au Menu</a></li>
     
     
        </body>
     
    </html>
    Et voici un aperçu de mon arborescence :


    Nom : arborescence.PNG
Affichages : 1010
Taille : 24,7 Ko


    Merci d'avance pour les futures aides et conseils que vous me donnerez !

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Par défaut
    En attendant d'éventuels aides, je viens de lire un livre concernant JAVA JEE, et j'essaye de comprendre au mieux le fonctionnement des sessions (puisque je l'avais d'ores et déjà fait en PHP).

    Concernant mon projet, j'ai réussi à afficher une liste de nom de mes entreprises à partir de ma JSP :
    Nom : undeb.PNG
Affichages : 961
Taille : 6,1 Ko


    Le code de ma JSP :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <%@ page pageEncoding="UTF-8" %>
    <%@page import="com.test.beans.Entreprise"%>
    <%@page import="java.util.ArrayList"%>
     
     
     
    <!DOCTYPE html>
     
    <html>
     
        <head>
     
            <meta charset="utf-8" />
     
            <title>Liste des entreprises</title>
     
            <link type="text/css" rel="stylesheet" href="form.css" />
     
        </head>
     
        <body>
     
    	Liste des entreprises:
     
            <% ArrayList<Entreprise> listeentreprises =(ArrayList<Entreprise>) request.getAttribute("listeentreprises"); %>
     
           <% if (listeentreprises!=null)
        	   {%>
        			<select name="itemSelected">
     
        	   	<% for (Entreprise inscrit : listeentreprises) { %>
     
     
     
    		<%
     
    		%>
    			   <option value="<%=inscrit.getnoment()%>"><%=inscrit.getnoment()%></option>
    		<%
     
    		%>
     
     
    	   <%		}%>
    				</select>
        	   <% }
    	   %>
     
     
     
     
           <li><a href = "index.html"> Retourner au Menu</a></li>
     
     
        </body>
     
    </html>
    Je suis en train de voir s'il n'y aurait pas possibilité d'utilisé le JSTL (bien pratique à ce que je vois).

  3. #3
    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
    Billets dans le blog
    1
    Par défaut
    Je pense que si tu n'as pas de réponse, c'est un peu parce que plus grand monde n'utilise ces vielles technos, du coup, ça limite

    Je suis rouillé dans la jsp de base mais bon, si je comprends bien, tu cherches :
    1- à afficher une liste d'entreprises dans une combobox (ça c'est fait)
    2- lorsqu'une entreprise est sélectionnée, afficher le détail de cette entreprise

    Le problème c'est que rien n'est fait à partir de ta combo (l'objet <select>), il faudrait commencer par là.
    Lors de la selection, tu peux faire plusieurs choses au choix :
    - exécuter un requête ajax qui au retour ira mettre à jour un <div> dans ta page
    - appeler une servlet via un iframe en lui passant la clé de l'entreprise pour construire la réponse
    - renvoyer la page (via un formulaire) et construire la réponse globale (<select> + détail de l'entreprise)

    Dans tous les cas il faudra utiliser l'évènement "change" sur ton <select> pour lancer la suite du traitement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Je pense que si tu n'as pas de réponse, c'est un peu parce que plus grand monde n'utilise ces vielles technos, du coup, ça limite

    Je suis rouillé dans la jsp de base mais bon, si je comprends bien, tu cherches :
    1- à afficher une liste d'entreprises dans une combobox (ça c'est fait)
    2- lorsqu'une entreprise est sélectionnée, afficher le détail de cette entreprise

    Le problème c'est que rien n'est fait à partir de ta combo (l'objet <select>), il faudrait commencer par là.
    Lors de la selection, tu peux faire plusieurs choses au choix :
    - exécuter un requête ajax qui au retour ira mettre à jour un <div> dans ta page
    - appeler une servlet via un iframe en lui passant la clé de l'entreprise pour construire la réponse
    - renvoyer la page (via un formulaire) et construire la réponse globale (<select> + détail de l'entreprise)

    Dans tous les cas il faudra utiliser l'évènement "change" sur ton <select> pour lancer la suite du traitement.
    Ahah eh bien je suis bien d'accord avec toi, je préfère mille fois les autres technos que celle là. Néanmoins, c'est un projet pour mon école donc je suis contraint de me plier à cette obligation.

    Alors je n'ai jamais utilisé AJAX mais je vais me pencher dessus et forcément créer un nouveau topic relatif à AJAX pour pouvoir avancer !

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

Discussions similaires

  1. Liste déroulante avec objet différent en VBA
    Par béber_novice dans le forum Général VBA
    Réponses: 1
    Dernier message: 16/04/2012, 20h07
  2. [AC-2003] Problème création liste déroulante
    Par Tom92 dans le forum IHM
    Réponses: 7
    Dernier message: 28/11/2010, 16h09
  3. [PHP 5.3] Création liste déroulante à partir d'une table
    Par Godard dans le forum Langage
    Réponses: 2
    Dernier message: 26/07/2010, 09h03
  4. Création liste déroulante
    Par settoken dans le forum Langage
    Réponses: 2
    Dernier message: 12/09/2009, 10h16
  5. Création liste déroulante en javascript pour adobe livecyrcle
    Par mad000 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/07/2009, 14h57

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