cs_Yossi
Messages postés40Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention 5 septembre 2006
-
29 août 2006 à 11:16
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
29 août 2006 à 13:08
Bonjour,
j'ai un petit problème de null pointer Exception avec le code suivant:
j'ai une page jsp qui utilise une fonction statique :
String[][] nomsProduits = new String[2][Langue.getNbLangues()];
Connexion Langues = new Connexion("select * from langue");
int i =0;
while(Langues.next())
{
nomsProduits[0][i]=Langues.getString("idLangue");
nomsProduits[1][i]=request.getParameter("nomProduit"+Langues.getString("idLangue"));
i++;
}
public static void insertion(String nomsProduits[][], int idSousRayon) throws SQLException
{
Connexion.requete( "insert into caractproduit ( idsousrayon_fk) values ('"+idSousRayon+"')");
String idTable = Connexion.getValeur("select max(idTable_fk) as maxi from caractproduit;");
Connexion.requete("CREATE TABLE `Produit"+idTable+"` ( `idProduit` INT NOT NULL AUTO_INCREMENT PRIMARY KEY )");
int nbLangues= Langue.getNbLangues();
for (int i = 0 ;i<nbLangues ;i++)
Connexion.requete( "insert into caractproduitlangue ( idtable_fk, idlangue_fk, nomproduit, visible) values ('" +
idTable+"',"+
"'"+nomsProduits[0][i]+"',"+
"'"+nomsProduits[1][i]+"',"+
"'0');");
}
Je pense qu'il doit y avoir un problème au niveau (de la déclaration ?) du tableau de chaines vu que ça marche lorsque j'extrais le contenu de la méthode et je l'exécute sur la page web sans passer par la fonction.
Merci d'avance !
cs_Yossi
Messages postés40Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention 5 septembre 2006 29 août 2006 à 12:23
c 'est pas le problème puisque comme je l'ai dit :ça marche très bien lorsque j'extrais le contenu de la méthode et je l'exécute sur la page web sans passer par la fonction. cad lorsque je fais ca :
String[][] nomsProduits = new String[2][Langue.getNbLangues()];
Connexion Langues = new Connexion("select * from langue");
int i =0;
while(Langues.next())
{
nomsProduits[0][i]=new String (Langues.getString("idLangue"));
nomsProduits[1][i]=new String(request.getParameter("nomProduit"+Langues.getString("idLangue")));
out.write(nomsProduits[0][i]+" : "+nomsProduits[0][i]+"
");
i++;
}
int idSousRayon =Integer.parseInt( request.getParameter("idSousRayon"));
Connexion.requete( "insert into caractproduit ( idsousrayon_fk) values ('"+idSousRayon+"')");
String idTable = Connexion.getValeur("select max(idTable_fk) as maxi from caractproduit;");
Connexion.requete("CREATE TABLE `Produit"+idTable+"` ( `idProduit` INT NOT NULL AUTO_INCREMENT PRIMARY KEY )");
int nbLangues= Langue.getNbLangues();
for ( i = 0 ;i<nbLangues ;i++)
Connexion.requete( "insert into caractproduitlangue ( idtable_fk, idlangue_fk, nomproduit, visible) values ('" +
idTable+"',"+
"'"+nomsProduits[0][i]+"',"+
"'"+nomsProduits[1][i]+"',"+
"'0');");
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 29 août 2006 à 13:08
Salut,
Je ne vais pas vraiment répondre à ton problème mais j'ai des ptites questions :
C'est voulut quand tu fais :
out.write(nomsProduits[0][i]+" : "+nomsProduits[0][i]+"
");
ou c'est bien une faute de frappe et tu voulais faire :
out.write(nomsProduits[0][i]+" : "+nomsProduits[1][i]+"
");
par ce que tu ne trouve pas cela redondant d'afficher deux fois la même chose?
ensuite dans ta version qui bug pourquoi faire Integer.getInteger(....) et non Integer.parseInt(...) je sais bien que l'autoboxing du 1.5 c'est bien mais bon ici il n'y a pas vraiment d'interet de l'utiliser
et dans le remplissage de ton tableau même si normalement c'est implicite preserve le new String(...) soit :
while(Langues.next()) {
nomsProduits[0][i] = new String( Langues.getString("idLangue") );
nomsProduits[1][i] = new String( request.getParameter("nomProduit"+Langues.getString("idLangue")) );
i++;
}
les tableaux sont souvent rebelle en java :D
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."