Java.lang.NumberFormatException: null !!!!!

Fermé
ucef001 Messages postés 12 Date d'inscription lundi 25 juin 2012 Statut Membre Dernière intervention 4 juin 2014 - 25 juin 2012 à 13:25
 Utilisateur anonyme - 21 juil. 2012 à 16:56
Bonjour,
suite à ce bout de code :
j'ai eu ce message d'erreur :
java.lang.NumberFormatException: null
quelqu'un a une idée ?
**
*********************************************************************
protected void GotoArticle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("oui article");
int id=Integer.parseInt(request.getParameter("txtid"));
String nom=request.getParameter("txtnom".toString());
String desc=request.getParameter("txtdescription".toString());
String photo=request.getParameter("txtphoto".toString());
int prix=Integer.parseInt(request.getParameter("txtprix"));
int qte=Integer.parseInt(request.getParameter("txtqte"));
int spc=Integer.parseInt(request.getParameter("txtspc"));
int prod=Integer.parseInt(request.getParameter("txtproduit"));

Article a=new Article(id, nom, prix, photo, desc,spc, qte,new Produit(prod));

new EcommerceDAO().ajouterArticle(a);
HttpSession s=request.getSession(true);
s.setAttribute("article", a);
List<Categorie> gategories = EcommerceDAO.getAllCategorie();
request.setAttribute("cat", gategories);
List<Produit> produits = EcommerceDAO.getAllProduit();
request.setAttribute("p", produits);
List<Article> articles = EcommerceDAO.getAllArticle();
request.setAttribute("a", articles);
request.getRequestDispatcher("/Admin/vue/formArticle.jsp").forward(request, response);
}
**********************************************************************
public static List<Produit> getAllProduit() {

try {

String req="select p from Produit p ";

System.out.println("111111");
List<Produit> results = HibernateSessionFactory.getCurrentSession().createQuery(req).list();
System.out.println("222222");
return results;
} catch (RuntimeException re) {

throw re;
}
}
***********************************************************************
public void ajouterArticle(Article transientInstance) {
log.debug("enregistrer article instance");
try {
Session
s=HibernateSessionFactory.getCurrentSession();
s.beginTransaction();
s.save(transientInstance);
s.flush();
s.getTransaction().commit();
s.close();
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}

1 réponse

Utilisateur anonyme
21 juil. 2012 à 16:56
Salut!

C'est parcequ'un des arguments que tu passes à la méthode Integer.parseInt(..) est null. N'aurais-tu pas oubleir de l'envoyer dans ta requête HTTP?

La solution est de tester d'abord si un paramètre est présent.

Exemple:

    int prix = -1;

    if((String prixStr = request.getParameter("txtprix"))!=null)
        prix=Integer.parseInt(prixStr );


NB: en initialisant la variable "prix" avec un valeur négative tu peux savoir qu'il n'était pas présent dans la requête

;-)
HackTrack
3