Partage
  • Partager sur Facebook
  • Partager sur Twitter

problèmes d'affichage des donnée mysql j2e

    16 juillet 2019 à 18:20:47

    Bonjour Tout le monde , je débute en jee et j'ai suivi le tuto sur openclassrooms , et je suis bloquée dans le problèmes d'affichages des données mysql 

    voici le code de mon jsp 

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>Tests JDBC</title>
    <link type="text/css" rel="stylesheet" href="<c:url
    value="/inc/form.css"/>" />
    </head>
    <body>
    <h1>Tests JDBC</h1>
    
    	<form method="post" action= "test_jdbc">
    		<p>  
    			<label for="nom"> Nom : </label>
    			<input type="text" name="nom" id="nom" />
    			</p>
    			
    		 	<p> 
    			<label for="email"> Email : </label>
    			<input type="text" name="email" id="email" />
    			</p>
    	
    	<input type="submit" />
    	</form>
    
    
    <ul>
    	<c:forEach var="Utilisateur" items="${utilisateurs } ">
    		<li>
    		 <c:out value="${Utilisateur.nom  }" />
    	     <c:out value="${Utilisateur.email  }" />  
    		 </li>
    	</c:forEach>
    </ul>
    
    
    </body>
    </html>
    
    
    
    
    
    



    celui de ma servlet 

    package com.sdzee.servlets;
    import java.io.IOException;
    import java.util.List;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import com.sdzee.bdd.TestJDBC;
    import com.sdzee.beans.Utilisateur;
    
    
    
    public class GestionTestJDBC extends HttpServlet {
    	
    	
    public static final String ATT_MESSAGES = "utilisateurs";
    public static final String VUE = "/WEBINF/test_jdbc.jsp";
    
    public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException 
    {
    	TestJDBC tableNoms = new TestJDBC();
    	request.setAttribute("utilisateurs" , tableNoms.recupererUtilsateurs());
    	this.getServletContext().getRequestDispatcher("/web-INF/test_jdbc.jsp").forward(request, response);
    
    }
    
    public void doPost ( HttpServletRequest request , HttpServletResponse response ) throws ServletException , IOException {
    	Utilisateur utilisateur = new Utilisateur() ;
    	utilisateur.setNom(request.getParameter("nom"));
    	utilisateur.setEmail(request.getParameter("email"));
    	
    	TestJDBC tableNoms = new TestJDBC();
    	tableNoms.ajouterUtilisateur(utilisateur);
    	request.setAttribute("utilisateurs" , tableNoms.recupererUtilsateurs());
    
    	this.getServletContext().getRequestDispatcher("/web-INF/test_jdbc.jsp").forward(request, response);
    }
    }

    Ma classe java 

    package com.sdzee.bdd;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    import javax.servlet.http.HttpServletRequest;
    
    import com.sdzee.beans.Utilisateur;
    public class TestJDBC {
    	public List<Utilisateur> recupererUtilsateurs() {
    		List<Utilisateur> utilisateurs = new ArrayList<Utilisateur>();	
    	try {
    		Class.forName( "com.mysql.jdbc.Driver" );
    		} catch ( ClassNotFoundException e ) {
    		}
    	try {
    	Class.forName( "com.mysql.jdbc.Driver" );
    	} catch ( ClassNotFoundException e ) {		
    	}
    	Connection connexion = null;
    	Statement statement = null;
    	ResultSet resultat = null;
    	
    	loadDatabase();
    	
    	try {
    	connexion = DriverManager.getConnection( "jdbc:mysql://localhost:3306/flotte_mobile", "root", "**********" );
    	statement = connexion.createStatement();
    	resultat = statement.executeQuery( "SELECT   nom , email FROM user ;" );
    	while ( resultat.next() ) {
    	
    	String email = resultat.getString( "email" );
    	String nom = resultat.getString("motdepasse" );
    	String motdepasse = resultat.getString( "nom" );
    	
    	Utilisateur utilisateur = new Utilisateur() ;
    	
    	utilisateur.setNom("nom");
    	utilisateur.setEmail("Email");
    	utilisateurs.add(utilisateur);
    		}
    	} catch ( SQLException e ) {
    	} finally {
    		try {
    	if ( resultat != null ) 
    		resultat.close();
    	if ( statement != null ) 
    		statement.close();
    	if ( connexion != null ) 
    		connexion.close();
    	}catch ( SQLException ignore) {
    	}
    	}	
    return utilisateurs;
    	}
    
    	private void loadDatabase() {
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			
    		}catch ( ClassNotFoundException e) {
    			
    		}
    		Connection connexion = null;
    		try {
    			connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/flotte_mobile", "root", "*******");
    		}catch(SQLException e ) {
    			e.printStackTrace();
    		}
    		
    	}
    	
    	
    	public void ajouterUtilisateur(Utilisateur utilisateur)  {
    		loadDatabase() ;
    		Connection connexion = null;
    		try {
    			PreparedStatement preparedStatement = connexion.prepareStatement("INSERT INTO user (  email ,nom  ) VALUES (? , ? );");
    		    preparedStatement.setString(1, utilisateur.getEmail());
    			preparedStatement.setString(2, utilisateur.getNom());
    		    preparedStatement.executeUpdate() ;
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    		
    		
    		
    	}
    }
    



    l'erreur lors de l'execution 

    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 /test_jdbc.jsp at line 31
    
    28: <ul>
    29: 	<c:forEach var="Utilisateur" items="${utilisateurs } ">
    30: 		<li>
    31: 		 <c:out value="${Utilisateur.nom  }" />
    32: 	     <c:out value="${Utilisateur.email  }" />  
    33: 		 </li>
    34: 	</c:forEach>
    
    
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:613)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:510)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    

    cause mère

    javax.el.PropertyNotFoundException: Property 'nom' not found on type java.lang.String
    	javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:291)
    	javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:243)
    	javax.el.BeanELResolver.property(BeanELResolver.java:378)
    	javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
    	org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
    	org.apache.el.parser.AstValue.getValue(AstValue.java:184)
    	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:190)
    	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:950)
    	org.apache.jsp.test_005fjdbc_jsp._jspx_meth_c_005fout_005f0(test_005fjdbc_jsp.java:244)
    	org.apache.jsp.test_005fjdbc_jsp._jspx_meth_c_005fforEach_005f0(test_005fjdbc_jsp.java:201)
    	org.apache.jsp.test_005fjdbc_jsp._jspService(test_005fjdbc_jsp.java:123)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:472)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    

    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de ce serveur.

    Je vous prie de bien vouloir m'aider ça fait presque deux jours que je chercher sur l'internet mais en vain , ça me tape sur les nerfs :(  

    -
    Edité par NouhaylaEr-Ryhany 16 juillet 2019 à 18:29:14

    • Partager sur Facebook
    • Partager sur Twitter
      17 juillet 2019 à 0:48:43

      Hello

      Est-ce que tu as essayé de logger le contenu de ta variable ${utilisateurs} pour t'assurer qu'elle contient bien quelque chose ?

      Visiblement ce qui pose problème c'est d'accéder à la propriété "nom" de ton itération "Utilisateur"

      • Partager sur Facebook
      • Partager sur Twitter

      problèmes d'affichage des donnée mysql j2e

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown