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 :

Insertion de données via un JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 23
    Par défaut Insertion de données via un JSP
    Bonjour,

    J'ai crée une page jsp (patient.jsp) et j'ai fait une classe patient.java avec les méthodes ajouter(), modifier() et supprimer():
    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
    package classes;
    import connexion.cx;
    import java.sql.*;
    public class patient {
     
        private int cinp;
        private String nomp;
        private String prenomp;
        private Date daten;
        private int tel;
     
     
        public int getcin() {
            return cinp;
        }
        public void setcin(int cinp) {
            this.cinp = cinp;
        }
        public String getnom() {
            return nomp;
        }
        public void setnom(String nomp) {
            this.nomp = nomp;
        }
        public String getprenom() {
            return prenomp;
        }
        public void setprenom(String prenomp) {
            this.prenomp = prenomp;
        }
        public Date getdate() {
            return daten;
        }
        public void setdate(Date daten) {
            this.daten = daten;
        }
        public int gettel() {
            return tel;
        }
        public void settel(int tel) {
            this.tel = tel;
        }
        public patient() {
            super();
        }
        public patient(int a, String b, String f, Date d, int e) {
            this.setcin(a);
            this.setnom(b);
            this.setprenom(f);
            this.setdate(d);
            this.settel(e);
     
        }
     
        public int ajouter(int a, String b, String f, String d, int e){
     
            cx c=new cx();
            c.driver();
            c.OpenConnexion();
            String sql="insert into patient values("+a+",'"+b+"','"+f+"','"+d+"',"+e+")";
            int rs=c.UpdateExec(sql);
            c.CloseConnexion();
            return rs;
        }
     
     
        public int modifier(int a,String b){
     
            cx c=new cx();
            c.driver();
            c.OpenConnexion();
            String sql="update patient set nomp='"+b+"' where cinp="+a;
            int rs=c.UpdateExec(sql);
            c.CloseConnexion();
            return rs;
        }
     
        public int supprimer(int a){
     
            cx c=new cx();
            c.driver();
            c.OpenConnexion();
            String sql="delete from patient  where cinp="+a;
            int rs=c.UpdateExec(sql);
            c.CloseConnexion();
            return rs;
        }
        @Override
        public String toString() {
            return nomp;
        }
     
    }
    et une autre page maj_patient.jsp là ou je fais appel aux méthodes:
    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
    <%@ page import="classes.patient" %>
    <%
     
    if((request.getParameter("cinp")!="") && (request.getParameter("nomp")!="") && (request.getParameter("prenomp")!="") && (request.getParameter("daten")!="") && (request.getParameter("tel")!="")){
    int cinp=Integer.parseInt(request.getParameter("cinp"));
    String nomp=request.getParameter("nomp");
    String prenomp=request.getParameter("prenomp");
    Date daten=request.getParameter("daten");
    int tel=Integer.parseInt(request.getParameter("tel"));
    patient p=new patient();
    if(request.getParameter("ajouter")!=null){p.ajouter(cinp,nomp, prenomp, daten, tel);}
    if(request.getParameter("modifier")!=null){p.modifier(cinp,nomp);}
    if(request.getParameter("supprimer")!=null){p.supprimer(cinp);}
    }
    response.sendRedirect("resultatp.jsp");
    %>
    J'obtiens comme erreur :
    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP:

    Une erreur s'est produite à la ligne: 9 dans le fichier jsp: /maj_patient.jsp
    Date cannot be resolved to a type
    6: int cinp=Integer.parseInt(request.getParameter("cinp"));
    7: String nomp=request.getParameter("nomp");
    8: String prenomp=request.getParameter("prenomp");
    9: Date daten=request.getParameter("daten");
    10: int tel=Integer.parseInt(request.getParameter("tel"));
    11: patient p=new patient();
    12: if(request.getParameter("ajouter")!=null){p.ajouter(cinp,nomp, prenomp, daten, tel);}

    Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    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:717)
    Quelqu'un aurait-il une idée pour corriger cette erreur?
    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    Je dirais qu'il te manque l'import de java.util.* (ou au minimum de Date).

    Voilà, à+
    Gueritarish

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 23
    Par défaut
    J'ai essayé avec "import java.util.Date" mais ça ne fonctionne pas même avec "java.util.*"

  4. #4
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    C'est bien entendu dans la page JSP qu'il te faut faire l'import.
    Citation Envoyé par marwabenaissa Voir le message
    mais ça fonctionne pas
    Le message d'erreur est le même ? La pile d'exécution aussi ? "Ça fonctionne pas", n'est pas un message d'erreur Java ni Tomcat

    Voilà, à+
    Gueritarish

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 23
    Par défaut
    Une erreur s'est produite à la ligne: 7 dans le fichier jsp: /maj_rdv.jsp
    Type mismatch: cannot convert from String to Date
    4:
    5: if((request.getParameter("cinp")!="") && (request.getParameter("nomp")!="") && (request.getParameter("prenomp")!="") && (request.getParameter("daten")!="") && (request.getParameter("tel")!="")){
    6: int idrdv=Integer.parseInt(request.getParameter("idrdv"));
    7: Date daterdv=request.getParameter("daterdv");st.getParameter("daten");
    Je comprends rien...

  6. #6
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Alors, la méthode request.getParameter() renvoie un String.
    Je n'avais pas fait attention, mais, dans ta page JSP, tu fais directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date daterdv=request.getParameter("daterdv");
    Alors, que plus haut, tu fais bien la transformation de String vers int avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int idrdv=Integer.parseInt(request.getParameter("idrdv"));
    Il te faut donc convertir ta String en Date. Pour ce faire, tu peux utiliser un SimpleDateFormat.
    Pense à l'import dans ta page JSP.

    Voilà, à+
    Gueritarish

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 23
    Par défaut
    org.apache.jasper.JasperException: An exception occurred processing JSP page /maj_patient.jsp at line 7

    4: <%
    5:
    6: if((request.getParameter("cinp")!="") && (request.getParameter("nomp")!="") && (request.getParameter("prenomp")!="")&& (request.getParameter("tel")!="")){
    7: int cinp=Integer.parseInt(request.getParameter("cinp"));
    8: String nomp=request.getParameter("nomp");
    9: String prenomp=request.getParameter("prenomp");
    10: int tel=Integer.parseInt(request.getParameter("tel"));
    Et celui ?

    merci

  8. #8
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 23
    Par défaut
    C'est bon, je n'ai plus aucune erreur dans le code. Par contre, l'ajout ne se fait pas en base.
    Voici le code de la classe connexion qui gère ceci:
    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
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
     
    public class cx implements java.io.Serializable {
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	Connection con = null;
    	ResultSet rs = null;
    	Statement stmt = null;
     
    	public cx() {
    	};
     
    	// ------------------------------------------------------
    	public boolean driver() {
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			return true;
    		} catch (Exception e) {
    			System.out.println("Erreur lors du chargement du pilote :"
    					+ e.getMessage());
    			return false;
    		}
    	}
     
    	public boolean OpenConnexion() {
    		try {
    			String url = "jdbc:mysql://localhost:3306/cabinetmedical";
    			con = DriverManager.getConnection(url, "root", "");
    			return true;
    		} catch (Exception e) {
    			System.out.println("Echec de l'ouverture de la connexion :"
    					+ e.getMessage());
    			return false;
    		}
    	}
     
    	public boolean CloseConnexion() {
    		try {
    			con.close();
    			return true;
    		} catch (Exception e) {
    			System.out.println("Echec de la fermeture de la connexion :"
    					+ e.getMessage());
    			return false;
    		}
    	}
     
    	// ------------------------------------------------------
    	public ResultSet SelectExec(String sql) {
    		try {
    			stmt = con.createStatement();
    			rs = stmt.executeQuery(sql);
    		} catch (Exception e) {
    			System.out.println("Echec de l'exécution de la requête sql :"
    					+ e.getMessage());
     
    		}
    		return rs;
    	}
     
    	public int UpdateExec(String sql) {
    		int i = 0;
    		try {
    			con.setAutoCommit(false);
    			stmt = con.createStatement();
    			i = stmt.executeUpdate(sql);
    			con.commit();
    		} catch (Exception e) {
    			System.out.println("Echec de l'exécution de la requête sql :"
    					+ e.getMessage());
    		}
    		return i;
    	}
     
    	public boolean CloseResultSet() {
    		try {
    			rs.close();
    			return true;
    		} catch (Exception e) {
    			System.out.println("Echec de la fermeture de l'objet ResultSet :"
    					+ e.getMessage());
    			return false;
    		}
    	}
     
    	public boolean CloseStatement() {
    		try {
    			stmt.close();
    			return true;
    		} catch (Exception e) {
    			System.out.println("Echec de la fermeture de l'objet Statement :"
    					+ e.getMessage());
    			return false;
    		}
    	}
    }
    Si quelqu'un a des idées / pistes... Merci d'avance.

Discussions similaires

  1. [XL-2003] insertion de données via un Formulaire
    Par crashfire dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 17/01/2010, 20h59
  2. Réponses: 2
    Dernier message: 08/07/2009, 13h19
  3. Réponses: 2
    Dernier message: 09/10/2008, 09h07
  4. [MySQL] Insertion de données via un tableau
    Par Telecaster dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/07/2008, 23h50
  5. [Oracle] Insertion de données via un tableau
    Par Arkadius dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/09/2007, 16h35

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