Erreur:::java.lang.NumberFormatException: null

Bonjour, j'ai fait un test pour la suppression ,mais a chaque fois je la valide il m'affiche une exception: la voila
java.lang.NumberFormatException: null
java.lang.Long.parseLong(Long.java:404)
java.lang.Long.parseLong(Long.java:483)
Servlet.AjoutServl.doPost(AjoutServl.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:273)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:270)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:536)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:305)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)

voici le code que j'ai fait:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

//recuperer les information
if (request.getParameter("action")!=null){
op.remove(Long.parseLong(request.getParameter("id")));

request.getRequestDispatcher("AjoutProduit.jsp").forward(request, response);
// traitement

}


merci d'avance

1 réponse

  1. Modérateur
    Bonjour,

    Ton test pour savoir si le paramètre "action" est non null ne permet pas de s'assurer que le paramètre "id" sera non null aussi... or il l'est et ça entraîne une erreur.

    if (request.getParameters("id")!=null){
        op.remove(Long.parseLong(request.getParameter("id")));

    Remarque ce test ne doit pas t'empêcher de faire un try catch quand même, il n'est pas exclu que le paramètre "id" puisse être n'importe quoi d'autre qu'un entier...
    La confiance n'exclut pas le contrôle
    1. bonsoir,j'ai fait ce que vous m'avez donnez mais quand je clique sur le boutton supprimer il m'ajoute une ligne avec avec la valeur "null" partout au lieu de supprimer la ligne souhaiter.merci
    2. et voici aussi le formulaire qui a le truc""action"



      <form action="Ajou" method="post">

      <input type="hidden" name="id " value="<%=e.getID()%>"/>
      <input type="hidden" name="action" value="supprimer"/>
      <input type="submit" value="supprimer"/>

      </form>