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 :

erreur récupération des données depuis base de données dans une liste


Sujet :

Développement Web en Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 4
    Points
    4
    Par défaut erreur récupération des données depuis base de données dans une liste
    Bnsr cher amis,
    je suis encore débutant en java et je rencontre quelques problèmes au niveau de mon projets pfe,
    je veut récupérer les liste de mes utilisateurs depuis une base de données mysql puis les affiché au
    niveau d'une page .jsp .
    j'ai une classe dans la quelle se trouve ma requête sql pour récupérer les utilisateurs comme l'indique ce code :
    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
     
    public ArrayList<utilisateur> listeDesUtilisateur() throws SQLException {
    	ResultSet resultSet = connection.createStatement().executeQuery(
    			"select * from makatib.utilisateur");
    	return (ArrayList<utilisateur>) convertirListe(resultSet,"utilisateur");
    }
    public List convertirListe(ResultSet resultSet,String type)
    		throws SQLException {
    List liste = (List) new ArrayList();
    while (resultSet.next()) {
    	if (type.equals("utilisateur")){
    	String id = resultSet.getString("id");
    	String nom = resultSet.getString("nom");
    	String prenom = resultSet.getString("Prenom");
    	int cin_util = resultSet.getInt("cin_util");
    	String Type = resultSet.getString("type");
    	String mots_de_passe = resultSet.getString("mots_de_passe");
    	utilisateur utilisateur = new utilisateur();
    	utilisateur.setId(id);
    	utilisateur.setNom(nom);
    	utilisateur.setPrenom(prenom);
    	utilisateur.setCin_util(cin_util);
    	utilisateur.setType(Type);
    	utilisateur.setMots_de_passe(mots_de_passe);
    	liste.add(utilisateur);
    	}
    	 }
     
    return liste;
    }
    ce qui concerne 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    package com.makatib.administrateur;
     
    import java.io.IOException;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import com.utility.makatib.HelpMakatibSystemPersistentManager;
    public class PreparerDonneesListeUtilisateur extends HttpServlet {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	@Override
    	protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		RequestDispatcher reqdisp = null;
    		try {
    			HelpMakatibSystemPersistentManager deskSystemPersistentManager = new HelpMakatibSystemPersistentManager();
    			request.setAttribute("listeUtilisateur",
    					deskSystemPersistentManager.listeDesUtilisateur());
    			reqdisp = request.getRequestDispatcher("/ListeUtilisateurs.jsp");
    			reqdisp.forward(request, response);
    		} catch (Exception exception) {
    			// TODO: handle exception
    			request.setAttribute("details-erreur", exception.getMessage());
    			reqdisp = request.getRequestDispatcher("/error.jsp");
    			reqdisp.forward(request, response);
    		}
    	}
     
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doGet(request, response);
    	}
    }
    code page 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
    <%@page import="com.model.makatib.utilisateur"%>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1" import="java.util.ArrayList"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Liste des utilisateurs</title>
    </head>
    <body>
    <% ArrayList<utilisateur> utilisateurs= (ArrayList<utilisateur>) request.getAttribute("listeUtilisateurs"); %>
    <h1>Liste des utilisateurs</h1>
    <table border="1" id="listeUtilisateurs">
    	<tr>
    		<td width="207" align="center"><b>identifiant</b></td>
    		<td width="207" align="center"><b>nom</b></td>
            <td width="207" align="center"><b>prenom</b></td>
            <td width="207" align="center"><b>cin_util</b></td>
            <td width="207" align="center"><b>Type</b></td>
            <td width="207" align="center"><b>mots_de_passe</b></td>
    	</tr>
    <% for (int i=0;i<utilisateurs.size() ;i++){
    out.print("<tr>");
    out.print("<td align=\"center\">"+utilisateurs.get(i).getId()+"</td>");
    out.print("<td align=\"center\">"+utilisateurs.get(i).getNom()+"</td>");
    out.print("<td align=\"center\">"+utilisateurs.get(i).getPrenom()+"</td>");
    out.print("<td align=\"center\">"+utilisateurs.get(i).getCin_util()+"</td>");
    out.print("<td align=\"center\">"+utilisateurs.get(i).getType()+"</td>");
    out.print("<td align=\"center\">"+utilisateurs.get(i).getMots_de_passe()+"</td>");
    out.print("</tr>");
    }
    %>
     
    </table>
    <a href="GestionDuReferentiel.jsp">Retour</a>
    </body>
    </html>
    et voici l'erreur que j'obtient :

    type Rapport d'exception

    message An exception occurred processing JSP page /ListeUtilisateurs.jsp at line 21

    description Le serveur a rencontré une erreur interne qui l'a empêché de satisfaire la requête.

    exception

    org.apache.jasper.JasperException: An exception occurred processing JSP page /ListeUtilisateurs.jsp at line 21

    18: <td width="207" align="center"><b>Type</b></td>
    19: <td width="207" align="center"><b>mots_de_passe</b></td>
    20: </tr>
    21: <% for (int i=0;i<utilisateurs.size() ;i++){
    22: out.print("<tr>");
    23: out.print("<td align=\"center\">"+utilisateurs.get(i).getId()+"</td>");
    24: out.print("<td align=\"center\">"+utilisateurs.get(i).getNom()+"</td>");


    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    cause mère

    java.lang.NullPointerException
    org.apache.jsp.listeutili_jsp._jspService(listeutili_jsp.java:135)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.39.

    Apache Tomcat/6.0.39

    Aidez moi svp

  2. #2
    Membre actif
    Homme Profil pro
    Consultant BigData
    Inscrit en
    Juillet 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant BigData

    Informations forums :
    Inscription : Juillet 2009
    Messages : 129
    Points : 280
    Points
    280
    Par défaut
    Bonjour,

    Tu obtiens une NPE car la JSP ne sait pas ce qu'est "utilisateurs" lorsque tu écris directement ton Java dans la JSP.
    C'est d'ailleurs une méthode de création des JSP que je te déconseille. Utilises plutôt les expressions EL, c'est beaucoup plus lisible

    Au début de ton fichier, tu ajoutes la JSTL (attention, il faudra que le JAR de la JSTL soit dans ton dossier lib de Tomcat).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    Puis ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <tr>
    <c:forEach items="${requestScope['listeUtilisateur']}" var="user" varStatus="status">
    	<td>user.id</td>	
    	<td>user.nom</td>	
    	<td>user.prenom</td>	
    	<td>user.cin_util</td>	
    	<td>user.type</td>	
    	<td>user.mots_de_passe</td>	
    </c:forEach>
    </tr>

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci pour votre aide ,
    j'ai fait comme vous avez mentionné mais ça m'affiche un tableau vide sans aucun utilisateurs .

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    1) deskSystemPersistentManager.listeDesUtilisateur() -> Est-ce que ceci retourne bien une liste d'utilisateurs non vide?
    2) est-ce que tu accède bien à la page par la servlet et non pas par la jsp?

Discussions similaires

  1. Récupération de données en SQL et tri dans une liste
    Par skurty dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 24/03/2010, 23h55
  2. Récupérer données formulaire et les afficher dans une liste à puce
    Par johnny3 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/02/2010, 20h38
  3. Code Igniter Intercepter les erreurs lors des requêtes vers bases de données
    Par ilalaina dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/10/2009, 07h52
  4. Base de données sans base de données
    Par Zenklys dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/09/2008, 13h13
  5. Réponses: 2
    Dernier message: 18/01/2008, 11h59

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