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 :

[Débutant] Problème récupération de données


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut [Débutant] Problème récupération de données
    Hier j'ai créé une petite base access pour tester le jdbc. J'ai réussi (grâce au tutoriel) à me connecter dessus, à récupérer des données, à inserer des données, supprimer, et faire des mises à jour. Donc je suis assez satisfait mais j'ai un gros probleme (surement de logique) pour récupérer plusieurs enregistrement en meme temps.

    Voici ce que j'ai fait hier. Je ne récupere qu'un seul enregistrement donc pas de soucis.

    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
     
    import java.io.IOException;
    import javax.servlet.Servlet;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
     
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    import java.sql.*;
     
    public class vaChercher extends HttpServlet implements Servlet {
     
     
    	static Connection connexion;
    	static ResultSet resultat;
    	static String R;
    	static String R2;
    	static String R3;
    	static String requete; 
     
     
     
    	public void doGet(HttpServletRequest req, HttpServletResponse resp)
    		throws ServletException, IOException {
    			cherche(req,resp);
    	}
     
     
     
    	public void doPost(HttpServletRequest req, HttpServletResponse resp)
    		throws ServletException, IOException {
    			cherche(req,resp);
    	}
     
     
    	public void cherche(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    				//recup des parametres
    				String nom = req.getParameter("nom");
     
    				try{
    					Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    					System.out.println("chargement du driver réussi");
    				}
    				catch(ClassNotFoundException exc){
    					System.out.println("Erreur de chargement du pilote !");					
    				}
    				String url="jdbc:odbc:lru";
     
    				try{
    					Connection connexion = DriverManager.getConnection(url,"","");
    					System.out.println("connexion réussie");
    					requete = "select * from Famille where Nom_Famille = '" + nom + "'";
    					Statement statement = connexion.createStatement();	
    					resultat = statement.executeQuery(requete);
    					while(resultat.next()) {
    						R = resultat.getString("Nom_Famille");
    						R2 = resultat.getString("prenom_pere");
    						R3 = resultat.getString("prenom_mere");
    						System.out.println("dans la famille " + R + ", le pere s'appelle " + R2 + " et la mere " + R3);
     
    						HttpSession session = req.getSession();
    						ServletContext context = getServletContext();
    						System.out.println("session = "+session);
     
     
    						//création du bean
    						BeanNom mbean = new BeanNom();
    						mbean.setNom(nom);
    						mbean.setPrenomP(R2);
    						mbean.setPrenomM(R3);
    						mbean.setResu(resultat);
    						System.out.println("mbean= "+mbean);
     
    						session.setAttribute("mbean",mbean);
     
    						context.getRequestDispatcher("recupFam.jsp").forward(req,resp);
    					}
     
    				}
    				catch(SQLException exc){
    					System.out.println("Erreur ! - " + exc.toString());
    				}
    			}
    }
    pas de soucis puisque je ne récupere qu'un seul enregistrement.

    Maintenant si je change ma requete comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "select * from Famille";
    Je vais récupérer plusieurs enregistrements et je ne vois pas comment les envoyer à ma JSP pour l'affichage.

    J'ai bien une petite idée mais je n'arrive pas à la mettre en place. Je pense qu'il ne faut pas récupérer les champs dans la servlet et les envoyer 1 par 1 dans la JSP, je pense qu'il faut plutot envoyer tout d'un bloc dans la JSP et faire ensuite une boucle pour l'affichage.
    Suis je sur la bonne voie? si oui comment tout envoyer d'un bloc? Sinon comment dois-je m'y prendre?

    Merci pour vos réponses ! C'est quand meme dur d'apprendre Java tout seul... (heuresement que vous etes là )
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  2. #2
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    tu peux envoyer une list dans la JSP et faire un iterate (balise JSP).
    Je pense que c'est ca que tu veux faire si j'ai bien compris
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  3. #3
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    Je ne sais pas comment faire ca et ne trouve pas de doc ! Sinon est ce la solution utilisé par tous ou juste une astuce? Sinon que dois je faire pour que ce soit correct?
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Salut
    Dans ta boucle while tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    session.setAttribute("mbean",mbean);
    ce qui veut dire que quelque soit le nombre de ligne retourné par ta requete tu n'aura que les infos de la derniere ligne chargé en session !!!

    tu dois comme l'as dis viena créer une list et dans ta boucle while tu aurais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maList.add(monBean);
    puis apres la boucle while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    session.setAttribute("mesBeans",maList);
    Apres tu la recupere coté JSP et tu en fais ce que tu veux !!
    Et d'apres moi oui il s'agit la d'un grand classique !!!
    Les difference viennent de la façon de traiter la liste coté JSP.Le plus 'classe' serais d'eviter de mettre du code java dans ta JSP et d'utilisé des Tag comme te le dis viena mais si ca te broute mets du code JAVA te prend pas la tete !!
    UML avec VIOLET

  5. #5
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    tu recuperes ta liste de ta base, tu la mets dans une collection (collection, list, arraylist...)
    tu la mets en session (ou en request et le scope en fonction de)
    et dans ta JSP t'as un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:iterate id="idListe" name="liste" scope="session">
    	<bean:write name="idListe" property="attributAAfficher"/>
    </logic:iterate>
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  6. #6
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    Comment et où créer ma liste? C'est quoi le code pour une liste? Sinon le principe je pense l'avoir compris!
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  7. #7
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    tu créés ta liste dans ton code java. quand tu la recuperes de la base par exemple.
    t'as ce type de fonction :
    Citation Envoyé par docJava
    Array getArray(String colName)
    Retrieves the value of the designated column in the current row of this ResultSet object as an Array object in the Java programming language.
    ca te permet de recuperer la colonne que tu ve utiliser.
    sinon, si tu veux tout tes champs, il faut que tu parcours tes resultats pour creer tes differents beans et faire un
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  8. #8
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    et la liste je la crée comment? parce que le getArray(...) ne sert qu'à récupérer une données, non?
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  9. #9
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    dans la FAQ j'ai trouvé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    while(resultat.next()) {
    						Array array = resultat.getArray("colonneArray");
    						   //array est un simple "pointeur"
    						Object tableau = array.getArray();
    						   //tableau est tableau Java
    						String[] donneesTableau = (String[])tableau;
    							//vous devez le caster dans le type de données contenues
    						for(int i=0; i<donneesTableau.length ; i++){
       							System.out.println(donneesTableau[i]);
    						}
    mais il me plante à l'execution. Il me met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    E SRVE0026E: [Erreur de servlet]-[vaChercher]: java.lang.UnsupportedOperationException
    il plante sur cette ligne apparement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Array array = resultat.getArray("colonneArray");
    colonneArray est bien un champs de ma table?

    j'ai bien fait le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    import java.sql.*;
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Avant ta boucle while fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList array=new ArrayList();
    puis dans la boucle tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    array.add(monBean);
    et tu mets array en session ou en request suivant t besoins !

    Et voila
    UML avec VIOLET

  11. #11
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    Avant ta boucle while fais
    Code:

    ArrayList array=new ArrayList();

    puis dans la boucle tu fais :
    Code:

    array.add(monBean);

    et tu mets array en session ou en request suivant t besoins !
    Faut-il importer quelque chose de spécifique parce qu'à la compile, il me met :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList ne peut pas etre résolu ou ne correspond pas à un type
    J'ai lu dans la FAQ JDBC qu'il fallait importer la classe DatabaseMetaData, chose faite puisque je fais l'import java.sql.*;
    J'ai aussi essayé import java.sql.DatabaseMetaData; pour etre sur avant de poster mais rien n'y fait... J'en ai marre d'embeter le monde avec mes questions de noob...
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  12. #12
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Citation Envoyé par docJava
    java.util
    Class ArrayList
    java.lang.Object
    java.util.AbstractCollection
    java.util.AbstractList
    java.util.ArrayList
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  13. #13
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    vous allez me dire que je suis chiant (si si vous le dites ) mais je ne comprend pas comment ca fonctionne

    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
     
    	public void cherche(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    				//recup des parametres
    				String nom = req.getParameter("nom");
     
    				try{
    					Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    					System.out.println("chargement du driver réussi");
    				}
    				catch(ClassNotFoundException exc){
    					System.out.println("Erreur de chargement du pilote !");					
    				}
    				String url="jdbc:odbc:lru";
     
    				try{
    					Connection connexion = DriverManager.getConnection(url,"","");
    					System.out.println("connexion réussie");
    					requete = "select * from Famille"; // where Nom_Famille = '" + nom + "'";
    					Statement statement = connexion.createStatement();	
    					resultat = statement.executeQuery(requete);
    					System.out.println("requete executee");
     
    					ArrayList array = new ArrayList();
     
    					while(resultat.next()) {
     
     
    						HttpSession session = req.getSession();
    						ServletContext context = getServletContext();
    						System.out.println("session = "+session);
     
     
    						//création du bean
    						BeanNom mbean = new BeanNom();
     
    	array.add(mbean); 
     
    							System.out.println("mbean= "+mbean);
     
    						session.setAttribute("mbean",mbean);
     
    						context.getRequestDispatcher("recupFam.jsp").forward(req,resp);
    					}
     
    				}
    				catch(SQLException exc){
    					System.out.println("Erreur ! - " + exc.toString());
    				}
    			}
    }
    ca c'est ma servlet!

    et voici mon bean :

    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
     
    import java.io.Serializable;
    import java.sql.*;
    import java.util.*; 
    import java.lang.Class; 
    import java.lang.Object; 
    import java.util.AbstractCollection; 
    import java.util.AbstractList; 
    import java.util.ArrayList;
     
     
    public class BeanNom implements Serializable{
     
     
    	private ArrayList a;
     
    	public BeanNom(){
    		super();
    	}
     
     
    	public void setArray(ArrayList s){
    			a=s;
    	}
    	public ArrayList getArray(){
    			return a;
    	}
    }
    vous m'arretez si je me trompe!

    Et voici ma jsp pour récupérer le résultat de ma requete :

    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <HTML>
    <HEAD>
    <%@ page import="BeanNom"
    language="java"
    contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"
    %>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <META name="GENERATOR" content="IBM WebSphere Studio">
    <META http-equiv="Content-Style-Type" content="text/css">
     
    <TITLE>recupFam.jsp</TITLE>
    </HEAD>
    <BODY>
     
    <jsp:useBean id="mbean" scope="session" type="BeanNom" class="BeanNom" />
     
    	<p>nom= <jsp:getProperty name="mbean" property="array"/></p>
     
    </BODY>
    </HTML>
    Déjà si vous voyais des erreur dans la servlet ou le bean(ou des astuces et pieges à eviter) signalez le moi. Et voici ma question:
    Comment afficher le résultat de ma requete dans une liste déroulante? Parce que j'ai essayé plein de chose mais bon vu que je suis un gros boulet à qui il faut expliquer longtemps... Je pensais faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    tant que pas fin de array
    <select name=selNom> 
          <option value>valeur de array</option>
    </select>
    Je suis sur la bonne voie ou pas?
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  14. #14
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Bon, je comprend pas trop ta servlet...
    dans ton while, d'apres moi, il faut juste parcourir ton resultat pour remplir la liste (array), pas de session la dedans.
    Donc, moi je ferrais un truc genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while(resultat.next()) { 
                      //création du bean 
                      BeanNom mbean = new BeanNom(); 
                      //remplissage du bean
                     ...........
                     //ajout du bean a la liste
                     array.add(mbean);
    }
    NB : tu n'ai pas obligé de faire un bean juste pour mettre ta liste, tu peux mettre directement ta liste (array) en session.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttribute("liste",array);
    Et ensuite, dans ta JSP, dans le corp de ta liste déroulante , tu fais un truc de ce genre la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:iterate id="idListe" name="liste" scope="session"> 
       <bean:write name="idListe" property="attributAAfficher"/> 
    </logic:iterate>
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  15. #15
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    Bon je reposte une derniere fois mon nouveau code comme j'ai cru comprendre qu'il fallait le faire. Si j'ai des erreurs de style, il faut me le dire je prefere me prendre la tete mais avoir quelque chose de propre!
    ma servlet :
    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
     
    try{
    					Connection connexion = DriverManager.getConnection(url,"","");
    					System.out.println("connexion réussie");
    					requete = "select * from Famille"; // where Nom_Famille = '" + nom + "'";
    					Statement statement = connexion.createStatement();	
    					resultat = statement.executeQuery(requete);
    					System.out.println("requete executee");
     
    					ArrayList array = new ArrayList();					
    					while(resultat.next()) {					
     
    						//création du bean
    						BeanNom mbean = new BeanNom();
    						mbean.setNom(nom);
    						array.add(mbean);
    					}	
     
    					HttpSession session = req.getSession();
    					session.setAttribute("liste",array);
    					ServletContext context = getServletContext();
    					context.getRequestDispatcher("recupFam.jsp").forward(req,resp);
    				}
    				catch(SQLException exc){
    					System.out.println("Erreur ! - " + exc.toString());
    				}
    mon bean
    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
     
    import java.io.Serializable;
     
    public class BeanNom implements Serializable{
     
    	private String nom;
     
    	public BeanNom(){
    		super();
    	}
     
    	public void setNom(String s){
    		nom=s;
    	}
     
    	public String getNom(){
    		return nom;
    	}
    }
    et 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
     
    <BODY>
     
    <jsp:useBean id="mbean" scope="session" type="BeanNom" class="BeanNom" />
     
    		Agence:
    		<select name=selAgence> 
    			<logic:iterate id="idListe" name="liste" scope="session"> 
       				<bean:write name="liste" property="nom"/> 
    			</logic:iterate>
    		</select>
     
     
    </BODY>
    Bon déjà, il ne connait pas la balise logic:iterate et la balise bean:write !!! Et ensuite il ne m'affiche rien!!! qu'est ce que j'ai encore oublié ?!!!

    vive java . Bon j'espere que dans quelque temps je dirais vive java
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  16. #16
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    verifie que tu as ce genre de chose en haut de ta jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <%@page   language="java" %>
    <%@taglib prefix="bean"  uri="/WEB-INF/struts-bean.tld"  %>
    <%@taglib prefix="html"  uri="/WEB-INF/struts-html.tld"  %>
    <%@taglib prefix="logic" uri="/WEB-INF/struts-logic.tld" %>
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  17. #17
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    je les ai mis mais le truc c'est que dans WEB-INF je n'ai pas ces fichier... Il faut les importer? ils viennent d'ou? et ils servent à quoi? Y a t'il un tutoriel pour ce genre de truc (que j'arrete de vous embeter )?
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  18. #18
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Ce sont les bibliotheques de Tags qui te permette de pouvoir utiliser ces tags dans les JSP.
    Utilises google, tu devrais les trouver.
    tu les telecharges et voila, ca devrait marcher.
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  19. #19
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    bon ca y est j'ai trouvé ces taglib ! J'ai meme réussi à les importer tout seul comme un grand !
    Mais mon application ne marche toujours pas ...

    erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    E SRVE0026E: [Erreur de servlet]-[No getter method for property fNom of bean liste]: javax.servlet.jsp.JspException: No getter method for property fNom of bean liste
    ma servlet vaChercher.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
     
    				try{
    					Connection connexion = DriverManager.getConnection(url,"","");
    					System.out.println("connexion réussie");
    					requete = "select * from Famille"; 
    					Statement statement = connexion.createStatement();	
    					resultat = statement.executeQuery(requete);
    					System.out.println("requete executee");
     
    					ArrayList array = new ArrayList();					
                        //Création du bean
    					BeanNom mbean = new BeanNom();
    					while(resultat.next()) {						
    						String fNom = resultat.getString("Nom_Famille");
    						mbean.setNom(fNom);
    						array.add(mbean);
    					}	
    					HttpSession session = req.getSession();
    					session.setAttribute("liste",array);
    					ServletContext context = getServletContext();
    					context.getRequestDispatcher("recupFam.jsp").forward(req,resp);
    				}
    				catch(SQLException exc){
    					System.out.println("Erreur ! - " + exc.toString());
    				}
    mon bean BeanNom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    import java.io.Serializable;
    public class BeanNom implements Serializable{
    	private String nom;
    	public BeanNom(){
    		super();
    	}
    	public void setNom(String s){
    		nom=s;
    	}
    	public String getNom(){
    		return nom;
    	}
    }
    recupFam.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <BODY>
     
    <jsp:useBean id="mbean" scope="session" type="BeanNom" class="BeanNom" />
     
    			<logic:iterate id="idListe" name="liste" scope="session"> 
       				<bean:write name="liste" property="fNom"/> 
    			</logic:iterate>
     
    </BODY>
    c'est le property du bean:write qui est faux? si c'est le cas que dois t on mettre? ou c'est une erreur dans l'envoi de la réponse? ou c'est mon bean?
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  20. #20
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Le probleme, c'est juste que dans ta JSP, tu n'appele pas le bon attribut. Il faut mettre l'attribut de ton bean que tu veux affiché pour chaque iteration des objets bean de la liste. ici, c'est nom.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <BODY> 
     
    <jsp:useBean id="mbean" scope="session" type="BeanNom" class="BeanNom" /> 
     
             <logic:iterate id="idListe" name="liste" scope="session"> 
                   <bean:write name="liste" property="nom"/> 
             </logic:iterate> 
     
    </BODY>
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

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

Discussions similaires

  1. problème récupération de données en liaison série
    Par prison_break dans le forum C++Builder
    Réponses: 4
    Dernier message: 27/06/2007, 08h51
  2. [Débutant] OraPackage - Récupération de données
    Par Maglight dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/10/2006, 11h44
  3. [VB6] Problème récupération de données
    Par valie dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 29/08/2006, 12h36
  4. problème récupération de données dans des fichiers .DAT
    Par indymontpellier dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/04/2006, 07h54
  5. [MySQL] Problème récupération de données avec un SELECT DISTINCT
    Par 12_darte_12 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/07/2005, 14h48

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