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 :

Conversion d'un String en Double dans une JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Par défaut Conversion d'un String en Double dans une JSP
    Bonjour,

    Je viens d'écrire une JSP dans laquelle, je veux saisir des données dans un formulaire et puis les récupérer pour les insérer dans une BDD.

    Comme j'ai des données de type numérique, alors j'ai voulu convertir les données recupérées du formulaire en numérique avant de les insérer dans la BDD.

    cela donne une erreur du type :

    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
     
     
    Etat HTTP 500 - 
     
    --------------------------------------------------------------------------------
     
    type Rapport d''exception
     
    message 
     
    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 /ajoutClient.jsp at line 98
     
    95: 	cl.setTelmobile(telmobile);
    96: 	cl.setTeldom(teldom);
    97: 	cl.setDomicile(domicile);
    98: 	cl.setSalaire(Double.valueOf(salaire).doubleValue());
    99: 	cl.setNbrepersch(Integer.parseInt(nbrepersch));
    100: 	cl.setDureechemp(dureechemp);
    101: 	cl.setSourcerev(sourcerev);
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:553)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
     
     
    cause mère 
     
    java.lang.NullPointerException
    	sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
    	java.lang.Double.valueOf(Unknown Source)
    	org.apache.jsp.ajoutClient_jsp._jspService(ajoutClient_jsp.java:154)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
     
     
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.14.
     
     
    --------------------------------------------------------------------------------
     
    Apache Tomcat/7.0.14

    Voici un fragment de la 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
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="java.sql.*" %>
    <%Class.forName("oracle.jdbc.driver.OracleDriver");%>
    <%@ page import="java.lang.Double" %>
     
    .........
     
    <form name = "firstForm" action =""
    	style = "width:50% ; margin:auto ; background-color:#c1d9fc ; padding-botton:15px;">
     
    	<h2 style = "text-align:center; color:white; background-color:#6683b1;">Ajouter un nouveau client</h2>
    	<p style = "text-align:center;">N° Client : <input type = "text" name = "codeclt" /> </p>
    	<p style = "text-align:center;">N° Assurrance : <input type = "text" name = "numass" /> </p>
    .........
    <p style = "text-align:center;">Salaire : <input type = "text" name = "salaire" /> </p>
    	<p style = "text-align:center;">Nombre de personnes en charge : <input type = "text" name = "nbrepersch" /> </p>
     
    ........
     
    // recupération des données de la page web
    	String codeClt=request.getParameter("codeclt");
    	String numass=request.getParameter("numass");
    	String nom=request.getParameter("nom");
    .............
     
    double salaire=java.lang.Double.valueOf(request.getParameter("salaire")).doubleValue();
    	int nbrepersch=Integer.parseInt(request.getParameter("nbrepersch"));
    	String dureechemp=request.getParameter("dureechemp");
    Le problème est au niveau de la ligne 29 du dernier cadre.

    merci pour vos conseils.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Il faut mettre les paramètres dans des variables et tester si elles ne sont pas nulle avant toute conversion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    double salaire = 0;
    String v = request.getParameter("salaire")
    if (v != null)
    {
       ... conversion 
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Par défaut
    J'ai compris mon problème, certainement, mes variables ont des valeurs nulles, car le formulaire ne s'affiche pas pour me permettre de saisir des valeurs.
    Voici mon fichier 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
    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
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="java.sql.*" %>
    <%Class.forName("oracle.jdbc.driver.OracleDriver");%>
    <%@ page import="java.lang.Double" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Ajouter Client</title>
    </head>
    <body>
    <form name = "firstForm" action =""
    	style = "width:50% ; margin:auto ; background-color:#c1d9fc ; padding-botton:15px;">
     
    	<h2 style = "text-align:center; color:white; background-color:#6683b1;">Ajouter un nouveau client</h2>
    	<p style = "text-align:center;">N° Client : <input type = "text" name = "codeclt" /> </p>
    	<p style = "text-align:center;">N° Assurrance : <input type = "text" name = "numass" /> </p>
    	<p style = "text-align:center;">Nom : <input type = "text" name = "nom" /> </p>
    	<p style = "text-align:center;">Prénom : <input type = "text" name = "prenom" /> </p>
    	<p style = "text-align:center;">Situation Matrimoniale : <input type = "text" name = "situamat" /> </p>
    	<p style = "text-align:center;">Age Client : <input type = "text" name = "age" /> </p>
    <p style = "text-align:center;">Salaire : <input type = "text" name = "salaire" /> </p>
    	<p style = "text-align:center;">Nombre de personnes en charge : <input type = "text" name = "nbrepersch" /> </p>
    <p style = "text-align:center; width:50% ; margin:auto ;">
    	<input type = "submit" name = "Soumettre" /> </p>
    </form>	
    	<%
            Connection conn=null;
            PreparedStatement pst=null;
            int n=0;
            // connexion à la base des données
            try {
                    Class.forName("oracle.jdbc.driver.OracleDriver");
                    try {
                            conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:miage2", "SYSTEM", "miage2");
                            System.out.println("Connexion établie !");
                    } catch (SQLException e) {
                            System.out.println("Connexion non établie");
                            e.printStackTrace();
                    }
            } catch (ClassNotFoundException e) {
                    System.out.println("Driver de classe incompatible !");
                    e.printStackTrace();
            }
            // recupération des données de la page web
            String codeClt=request.getParameter("codeclt");
            String numass=request.getParameter("numass");
            String nom=request.getParameter("nom");
            String prenom=request.getParameter("prenom");
            String situamat=request.getParameter("situamat");
            String age=request.getParameter("age");
                 double salaire=java.lang.Double.valueOf(request.getParameter("salaire")).doubleValue();
            int nbrepersch=Integer.parseInt(request.getParameter("nbrepersch"));
    // construction du client
            ecobank.Client cl=new ecobank.Client();
            cl.setCodeClt(codeClt);
            cl.setNumass(numass);
            cl.setNom(nom);
            cl.setPrenom(prenom);
            cl.setSituamat(situamat);
            cl.setAge(age);
                 cl.setSalaire(salaire);
            cl.setNbrepersch(nbrepersch);
    // requête SQL
            
            try {
                  pst=conn.prepareStatement("INSERT INTO TBCLIENT VALUES(?,?,?,?,?,?,?,?)");
            pst.setString(1, cl.getCodeClt());
            pst.setString(2, cl.getNumass());
            pst.setString(3, cl.getNom());
            pst.setString(4, cl.getPrenom());
            pst.setString(5, cl.getSituamat());
            pst.setString(6, cl.getAge());
                 pst.setDouble(13, cl.getSalaire());
            pst.setInt(14, cl.getNbrepersch());
                 n=pst.executeUpdate();
            System.out.println(n +" ligne ajoutée");
            pst.close();
            conn.close();
            } catch (SQLException e) {e.printStackTrace();
            }
            %>
    </body>
    </html>
    Merci d'avance.

  4. #4
    Expert éminent
    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
    Par défaut
    c'est pas que le formulaire ne s'affiche pas, c'est que tu exécute ton code modifiant la DB indépendement que fait qu'on soit à l'étape "afficher le formulaire" ou a l'étape "traiter la soumission du formulaire".

    Comme dit Obutterlin, vérifie que tes données ne sont pas null avant de les utiliser.

  5. #5
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2005
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 246
    Par défaut
    Comment faire la différence entre les étapes
    Citation Envoyé par tchize_ Voir le message
    l'étape "afficher le formulaire"
    et
    l'étape "traiter la soumission du formulaire".

    Merci d'avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 31
    Dernier message: 19/02/2015, 16h03
  2. [2008] Conversion d'un string en date dans une clause WHERE
    Par Florian54 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 30/05/2014, 16h04
  3. Réponses: 23
    Dernier message: 09/09/2010, 13h11
  4. [String] Remplacement caractères dans une chaîne
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 4
    Dernier message: 19/07/2004, 11h15
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

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