Affichage des donnée

Fermé
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015 - Modifié par Whismeril le 24/04/2015 à 19:13
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 25 avril 2015 à 18:53
Bonjour, j'ai fait une fonction qui fait l'affichage mais les données s'affiche juste quand j'ajoute un des donnée comment le modifier pour qu'elle reste toujours même sans cliquer sur ajouter voici mon code


 public ArrayList getAll(){
               ArrayList listEtudian= new ArrayList<Etudiant>();
            try {
                         Class.forName("com.mysql.jdbc.Driver");
                         Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root","");
                         PreparedStatement pr = cn.prepareStatement("SELECT * FROM etudiant");
                                                  
                         
                         
                          ResultSet rs = pr.executeQuery();
                            while(rs.next()){
                      Etudiant e = new Etudiant();     
                       e.setId_etu(rs.getInt("id_etu"));
                      e.setMat_etu(rs.getString("mat_etu"));
                     e.setNom_etu(rs.getString("nom_etu"));
                     e.setPrenom_etu(rs.getString("prenom_etu"));
                     
                    
                      e.setJour(rs.getString("jour"));
                      
                      e.setMoi(rs.getString("mois"));
                      
                      e.setAnnee(rs.getString("annee"));
                      e.setLieu_naiss_etu(rs.getString("lieux_naiss_etu"));
                      
                                e.setAdress_etu(rs.getString("adress_etu"));
                                   e.setEmail_etu(rs.getString("email_etu"));
                               e.setSexe_etu(rs.getString("sexe_etu"));  
                             
                                 
                                 listEtudian.add(e);
                                           
                            
                            }
                              
            }
     

                        //Etudiants.add(e);
                      catch (Exception ex) {
                          
                        ex.printStackTrace();
      
            }
 
            return listEtudian;
            
            }

   






EDIT: Précision du langage dans la coloration syntaxique.


merci

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
25 avril 2015 à 12:45
Bonjour,

"j'ai fait une fonction qui fait l'affichage"
Quel rapport avec ton code de récupération en base de données ?

"les données s'affiche juste quand j'ajoute un des donnée"
Quand est-ce que tu ajoutes des données, quand est-ce que tu les affiches ?

"comment le modifier pour qu'elle reste toujours même sans cliquer sur ajouter"
Je ne sais pas, on parle de quoi ? Où est le bouton ajouter, qu'est-ce qu'on doit modifier ?

On n'est pas devin, on ne peux pas savoir quel est ton problème si tu ne l'expliques pas correctement...
0
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015
Modifié par KX le 25/04/2015 à 14:24
Bonjour, ce programme possede un formulaire d'ajout des etudiants quand je clique sur le boutton ajouter la liste des etudiant sera afficher alor moi je veux le modifier pour que la litse reste toujours meme si si j'ai pas cliquer sur ajouter la liste restera toujour c'est a dir les donnée deja ajoutées avant
voici ma page jsp:
<%@page import="metier.Operation"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Iterator"%>
<%@page import="metier.Etudiant"%>
<%@page import="Servlet.EtudiantBeans"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
           <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
        <link rel="stylesheet" href="css/forme.css" type="text/css" charset="utf-8" />
 
        <title>Ajouter Etudiant</title>
    </head>
    <body>
        
        
        <%
            EtudiantBeans Etudiants =(EtudiantBeans) request.getAttribute("modele");
        
                if( request.getAttribute("modele")!=null ){
                Etudiants=  (EtudiantBeans) request.getAttribute("modele");}
                else {
                Etudiants=new EtudiantBeans();
                        }
                
            
            
            
            %>
             
<div id="general">
  
  <div id="entete">
    <div id="logo">
       </div>
    <div id="menu-haut">
   
       <span id="acc">   <a href="index.jsp"title=" Rotour a la page d'accueil"> Accueil </a></span>
        <span id="ident"><a href="inscri.jsp"> Inscription </a></span>
        <span id="ins"><a href="authen.jsp"> Connexion </a></span>
        <span id="cont"><a href="espaceGestionnaire.jsp"> Cours  </a></span>
           <span id="acc"> <a href="index.jsp">A propos </a></span>
            
               
    </div>
         
 </div>
      <div style="width:890px;height:500px;line-height:3em;overflow:scroll;padding:5px;scrollbar-base-color:#DEBB07;">
      <div id="navigation">
 <div id="nav">
    <ul>
<li>
<form id="search" name="search" action="chercher.php" method="POST"> 
       <span id="g" >
   <img src="css/ges.png ">
  </span>
                       
     <p>
      <input type="text" name="recherch" id="recherch" size="25" />
     </p>
     
                                   
    <p class="submit">
     <button type="submit">Chercher</button>
    </p>  
       
  </form>
</li>                  <li><a href="">Déconnexion</a></li>
   <li><a href="">Changer le profile</a></li>
   
                        <li><a href="">Gestion des CPs</a></li>
   <li><a href="AjoutEtudiant.jsp">Gestion des étudiants</a></li>
   <li><a href="AjoutEnseigant.jsp">Gestion des enseignants</a></li>
   <li><a href="AjoutModule.jsp">Gestion des modules</a></li>
                        <li><a href="AjoutFormation.jsp">Gestion des formations</a></li>
                               <li><a href="AjoutSpecialite.jsp">Gestion des specialité</a></li>
                        <li><a href="afficher_produit.php">Gestion des affichages</a></li>
                        <li><a href="AjoutSection.jsp">Gestion des sections </a></li>
                        <li><a href="AjoutGroupe.jsp">Gestion des groupes</a> </li>
                        <li><a href="AjoutAnnee.jsp">Gestion d'année d'étude</a></li>
                        <li><a href="AjoutSemestre">Gestion des Semestres</a></li>
    </ul>


</div> 
 </div>
      
       <div id="principal">
 
       <div id="ins-zone">
   
  

 

 <form name="ins" id="ins" action="Ajou" method="POST" onSubmit="return verif()"> 
   <label id="obli">Tous les champs sont obligatoire </label>
    <fieldset  class="zone1"><legend>Formulaire d'inscription</legend>
     <p class="present">
    <label for="mat_etu">Numéro d'étudiant </label>
     </p>
     <p class="present">
      <label for="nom_etu">Nom Etudiant</label>
     </p>
     <p class="present">
                                            <label for="prenom_etu">Prenom Etudaint</label></p>
                                        <p class="present">
      <label for="date_naissance">Date Naissance Etudaint </label>
     </p>
     <p class="present">
      <label for="lieu_naiss">Lieu Naissance Etudaint </label>
     </p>
                                        <p class="present">
      <label for="adresse_etud">Adresse Etudaint </label>
     </p>
                                        <p class="present">
      <label for="sexe_etu">Sexe Etudaint </label>
     </p>
     <p class="present">
      <label for="mail">E-mail </label>
     </p>
                                         
        
    </fieldset>
    <fieldset  class="zone2">
                                    <p>
      <input name="mat_etu" type="text"  size="30" />
     </p>
     <p>
      <input name="nom_etu" type="text"  size="15" />
     </p>
     <p>
      <input type="text" name="prenom_etu"  size="15" />
     </p>
     <p>
      <SELECT name="jour" id="jour" size=1>
    <OPTION>jours</OPTION>
<OPTION >01</OPTION>
<OPTION >02</OPTION>
<OPTION >03</OPTION>
<OPTION >04</OPTION>
<OPTION >05</OPTION>
<OPTION >06</OPTION>
<OPTION >07</OPTION>
<OPTION >08</OPTION>
<OPTION >09</OPTION>
<OPTION >10</OPTION>
<OPTION >11</OPTION>
<OPTION >12</OPTION>
<OPTION >13</OPTION>
<OPTION >14</OPTION>
<OPTION >15</OPTION>
<OPTION >16</OPTION>
<OPTION >17</OPTION>
<OPTION >18</OPTION>
<OPTION >19</OPTION>
<OPTION >20</OPTION>
<OPTION >21</OPTION>
<OPTION >22</OPTION>
 <OPTION >23</OPTION>
<OPTION >24</OPTION>
<OPTION >25</OPTION>
<OPTION >26</OPTION>
<OPTION >27</OPTION>
<OPTION >28</OPTION>
<OPTION >29</OPTION>
<OPTION >30</OPTION>
<OPTION >31</OPTION>
 
   </SELECT>
                                            
   
 
                                        
                                     
       <SELECT name="mois" id="mois" size=1>
             <OPTION>mois</OPTION>  
<OPTION >janvier </OPTION>
<OPTION >fevrier</OPTION>
<OPTION>mars</OPTION>
<OPTION >avril</OPTION>
<OPTION >mai</OPTION>
<OPTION >juin</OPTION>
<OPTION >juillet</OPTION>
 <OPTION>aout</OPTION>
<OPTION >septembre</OPTION>
<OPTION >octobre</OPTION>
<OPTION >novembre</OPTION>
<OPTION >décembre</OPTION>
 
   </SELECT>
              
               
<SELECT name="annee" id="annee" size=1  min="1975" max="1996">
   <OPTION>année</OPTION> 
<OPTION>1988</OPTION>
<OPTION>1989</OPTION>
<OPTION>1990</OPTION>
<OPTION>1991</OPTION>
<OPTION>1992</OPTION>
<OPTION >1993</OPTION>
<OPTION>1994</OPTION>
 
   </SELECT>

     </p>
                                        <p>
      <input type="text" name="lieux_naiss_etu"  size="30" />
     </p>
                                        <p>
      <input type="text" name="adress_etu"  size="30" />
     </p>
                                        <p>
              <SELECT name="sexe_etu" id="sexe_etu" size=1>
     <OPTION>femme</OPTION>
<OPTION>homme</OPTION>
        </select>

     </p>
     <p>
      <input type="text" name="email_etu"  size="30" />
     </p>
      
     
     
    </fieldset>     
 
   <p class="submit">
    <button type="submit" value="Valider">Ajouter</button>
    <button type="reset">Annuler</button>
    </p>  
       
  </form>  
       
 
  </div>
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    <br/><br/><br/><br/>
                    
         <table border="1" width="60%">
                    <tr>
                        
                        
                        <th>ID</th>
                        <th>matricule</th>
                          <th>Nom</th>
                            <th>Prenom</th>
                             <th>jours</th>
                              <th>mois</th>
                               <th>année</th>
                              <th>lieux naiss</th>
                              <th> adress</th>
                              
                                <th>email</th>
                                  <th> sexe</th>
                                     
                               
                                       <th>option</th>
                                                          </tr>
                <% 
             
            Iterator<Etudiant> List= Etudiants.getListe().iterator();
               while(List.hasNext()){
                                                          
             Etudiant e= List.next();
                                                          
               %>
                                                          
                                              
                                                         
                                                          

                    <tr>
            
            <td> <%=e.getId_etu()  %> </td>     
          <td> <%=e.getMat_etu() %> </td>
          
          <td> <%=e.getNom_etu()  %> </td>
           <td><%=e.getPrenom_etu() %> </td>
              <td><%=e.getJour()%> </td>
              <td><%=e.getMoi()%> </td>
              <td><%=e.getAnnee() %> </td>
           
           
           
       
              <td><%=e.getLieu_naiss_etu() %> </td>
           
                   <td><%=e.getAdress_etu()%></td>            
           <td><%=e.getSexe_etu()   %></td>
             
        
             <td><%=e.getEmail_etu()  %> </td>
                     
               <td>
             <form action="Ajou" method="post">
                              
                                  
             <input type="hidden" name="id_etu" value="<%=e.getId_etu() %>"/>
             <input type="hidden" name="actionn" value="supprimer"/>
          <input type="submit" value="supprimer"/>
          
                                
          </div>
                            </form>  
                        </td>
                    </tr> 
                    <%
                    }
                    %>
                       
                        </div>     
                </table>
                    </div>
  </div>
  </div>
  
  </div>
</div>  
        
        
    </body>
</html>






et la class Operation:





package metier;

 
 
 
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.sql.*;
 
 

 

 
         
  
public class Operation {
   
                 private ArrayList<Etudiant> Etudiants =new ArrayList<Etudiant>();

    public ArrayList<Etudiant> getEtudiants() {
        return Etudiants;
    }

    public void setEtudiants(ArrayList<Etudiant> Etudiants) {
        this.Etudiants = Etudiants;
    }
                 
            public void add(Etudiant e){
                
                     try {
                         
                         Class.forName("com.mysql.jdbc.Driver");
                         Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root","");
                         PreparedStatement pr=cn.prepareStatement("INSERT INTO etudiant VALUES(NULL,?,?,?,?,?,?,?,?,?,?)");
                                                  
                          pr.setString(1, e.getMat_etu());
                     pr.setString(2, e.getNom_etu());
                         pr.setString(3, e.getPrenom_etu());
                       pr.setString(4, e.getJour());
                              pr.setString(5, e.getMoi());  
                                pr.setString(6, e.getAnnee());
                         pr.setString(7, e.getLieu_naiss_etu());
                         pr.setString(8, e.getAdress_etu());
                              pr.setString(9, e.getSexe_etu());
                        
                            pr.setString(10, e.getEmail_etu());
                    
                        
                              pr.execute();
                              
                     }
     

                       //  Etudiants.add(e);
                      catch (Exception ex) {
                          
                        ex.printStackTrace();
      
            }
 
            }
     

            public void remove(int id_etu)
            {
            
           // for(Etudiant e: Etudiants){
               // if(e.getID()==ID){
              //  Etudiants.remove(e);
                //break;
                
                //}
           // }
            
            try {
                         Class.forName("com.mysql.jdbc.Driver");
                         Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root","");
                         PreparedStatement pr=cn.prepareStatement("DELETE FROM etudiant WHERE id_etu = ? ");
                                                  
                      pr.setInt(1, id_etu);
                    pr.execute();
                              
                     }
     

                       //  Etudiants.add(e);
                      catch (Exception ex) {
                          
                        ex.printStackTrace();
      
            }
 
                
                
            
            }
            public ArrayList getAll(){
               ArrayList listEtudian= new ArrayList<Etudiant>();
            try {
                         Class.forName("com.mysql.jdbc.Driver");
                         Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root","");
                         PreparedStatement pr = cn.prepareStatement("SELECT * FROM etudiant");
                                                  
                         
                         
                          ResultSet rs = pr.executeQuery();
                            while(rs.next()){
                      Etudiant e = new Etudiant();     
                       e.setId_etu(rs.getInt("id_etu"));
                      e.setMat_etu(rs.getString("mat_etu"));
                     e.setNom_etu(rs.getString("nom_etu"));
                     e.setPrenom_etu(rs.getString("prenom_etu"));
                     
                    
                      e.setJour(rs.getString("jour"));
                      
                      e.setMoi(rs.getString("mois"));
                      
                      e.setAnnee(rs.getString("annee"));
                      e.setLieu_naiss_etu(rs.getString("lieux_naiss_etu"));
                      
                                e.setAdress_etu(rs.getString("adress_etu"));
                                   e.setEmail_etu(rs.getString("email_etu"));
                               e.setSexe_etu(rs.getString("sexe_etu"));  
                             
                                 
                                 listEtudian.add(e);
                                           
                            
                            }
                              
            }
     

                        //Etudiants.add(e);
                      catch (Exception ex) {
                          
                        ex.printStackTrace();
      
            }
 
            return listEtudian;
            
            }

   
}
    
     







et aussi la servlet:

package Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;
import java.util.Iterator;
import java.util.Vector;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import metier.Etudiant;

import metier.Operation; 
 
public class AjoutServl extends HttpServlet {
     public static final long serialVersionUID = 1L;
 
 
 @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
     Operation op = new Operation();
  
 
  
 if (request.getParameter("actionn")!=null){
    op.remove(Integer.parseInt(request.getParameter("id_etu")));
     
    // System.out.println("ok");
 
                       // traitement
         
           
          }
      else
        {
String mat_etu=request.getParameter("mat_etu");
 String nom_etu= request.getParameter("nom_etu");
 String prenom_etu= request.getParameter("prenom_etu");
 String jour= request.getParameter("jour");
 String mois=request.getParameter("mois");
 String annee=request.getParameter("annee");
 
  String lieux_naiss_etu= request.getParameter("lieux_naiss_etu");
    String adress_etu =request.getParameter("adress_etu");
  String sexe_etu= request.getParameter("sexe_etu");
  String email_etu=request.getParameter("email_etu");
 
 
 
 
         
         //creation des objet
         
     
          
Etudiant e= new Etudiant(1, mat_etu, nom_etu, prenom_etu, jour, mois, annee, lieux_naiss_etu, adress_etu, sexe_etu, email_etu);
 op.add(e);
        
    
               // traitement
         

        }
EtudiantBeans eb=new EtudiantBeans(); 
   eb.setListe(op.getAll());
       
  request.setAttribute("modele", eb);
  request.getRequestDispatcher("AjoutEtudiant.jsp").forward(request, response);
    }

    
 }

 


merci
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
25 avril 2015 à 18:53
Pas mal de remarques.

Tu as commencé à séparer les codes dans des classes et des packages différents, c'est très bien, mais il faut aller au bout de l'idée.
Par exemple la classe Operation (qui ne fait que des opérations en base de données) pourrait être dans un package "dao" (Data Access Object), séparé de la classe Etudiant qui serait dans un package "bean".

Mais du coup je ne sais pas ce que vient faire l'ArrayList<Etudiant> Etudiants, et ses deux méthodes get/set qu'il y a dans Operation, d'une part elles ne sont pas utilisées, d'autres part, si Operation ne fait que l'accès en base, il ne devrait pas y avoir d'état, si ce n'est celui de la Connection, que tu peux ne faire qu'une seule fois (de même que le Class.forName qu'il est totalement inutile d'appeler plusieurs fois).

Je te propose de faire un singleton pour la classe Operation, c'est à dire une seule instance d'objet, qui contient la connexion.

public class Operation {

    private static final Operation instance = new Operation();

    public static Operation getInstance() {
        return instance;
    }

    private final Connection cn;

    private Operation() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd", "root", "");
        } catch (Exception e) {
            throw new IllegalStateException("Can't initialize database", e);
        }
    }

Evidemment, cela implique quelques petites modification dans les méthodes de Operation, puisque
cn
sera déjà défini.

public void add(Etudiant e) {
    try {
        PreparedStatement pr = cn.prepareStatement(...

Et au lieu de faire
Operation op = new Operation();
tu devras faire
Operation op = Operation().getInstance();
.

Ensuite vient la partie qui est vraiment moche dans ton code, c'est la JSP...
Il ne faudrait jamais faire ce que l'on appelle les scriptlets (le code avec <% %>), tu devrais plutôt regarder du côté de la JSTL ou autres taglib (un exemple)

Cela implique de déporter un certain nombre de code du côté de la servlet (pour ne plus avoir de Java dans la JSP), par exemple au lieu d'avoir :

<%
    Iterator<Etudiant> List = Etudiants.getListe().iterator();
    while (List.hasNext()) {
    Etudiant e = List.next();
%>
    <tr>
        <td><%=e.getId_etu()%></td>

Tu devrais faire, côté servlet, un
request.setAttribute("listeEtudiants", Etudiants.getListe());
et côté JSP :

<c:forEach var="e" items="${listeEtudiants}" >
    <tr>
    <td>${e.id_etu}</td>
</c:forEach>

Les risques à utiliser du Java directement dans la JSP sont les mêmes que ceux liés à faire de la concaténation de String dans une requête SQL. Si tu comprends pourquoi c'est mieux d'utiliser un preparedStatement, tu comprendras pourquoi c'est mieux d'utiliser la JSTL.

Au passage, tu pourrais te servir d'une boucle aussi pour remplir les options dans ton select...

<SELECT name="jour" id="jour" size=1>
    <OPTION>jours</OPTION>        
<c:forEach var="i" begin="1" end="31">
    <OPTION>${i}</OPTION>
</c:forEach>


Remarque : je ne peux toujours pas répondre à ta question...

"ce programme possede un formulaire d'ajout des etudiants quand je clique sur le boutton ajouter la liste des etudiant sera afficher"
Ok.

"alor moi je veux le modifier pour que la litse reste toujours meme si si j'ai pas cliquer sur ajouter"
Si tu n'as pas cliqué sur "ajouter" qu'est-ce que tu as fais à la place ? Ce n'est plus géré par le code d'ajout du coup ?

"la liste restera toujour c'est a dir les donnée deja ajoutées avant"
Ce que tu veux c'est afficher la liste comme elle était avant que tu n'ais commencé à ajouter des étudiants ? Dans ce cas au lieu de faire un setAttribute sur la request, il faut le faire sur la session avant de faire les ajouts, et toujours récupérer la liste depuis la session au lieu de retaper en base de données.
0