Bonjour,
oui je sais il y en a des tonnes des questions sur ces satanées checkbox, mais la mienne n'a toujours pas de réponse.
J'explique en gros le contexte : j'utilise struts 1.2.9; j'affiche une liste d'éléments avec pour chaque éléments son nom et une checkbox lui correspondant (le nb d'éléments n'est pas connu à l'avance). Puis j'ai un bouton qui soumet le formulaire et qui est censé renvoyé les éléments checkés
Petit détail très important le formulaire que je soumets est stocké dans la request, je pourrais si c'est vraiment nécessaire le mettre en session mais dans la philosophie de mon appli ce bean n'a rien à faire en session.
En fait le pb vient du fait que quand je soumets le formulaire html (j'appelle l'action struts donc), un nouveau formBean est créé puis il est rempli avec les parametres du form html.
Le pb est que dans le html, la liste d'éléments qui contient les checkbox est représenté dans le formBean par une ArrayList , mais cette ArryList est nulle (normal puisque le formBean vient juste d'ête créé), à la rigueur je peux l'instancier (dans la methode reset ou dans le constructeur) mais je ne connais pas à l'avance le nombre d'élements qu'elle aura, elle resterait donc vide.
Et c'est donc en voulant remplir l'ArrayList que ca plante puisque struts fait un get à la position i dans une liste qui est nulle ou vide (ce qui revient à peu près au même) et ensuite il fait un setChecked() et donc j'ai soit un NullPointerException (si la liste est null) ou un indexOutofBoundException (si la liste est vide).
En fait je comprends très bien pourquoi ca ne marche pas mais je ne vois pas comment résoudre le pb si ce n'est en mettant mon formBean en session, du coup il ne serait pas recréé et il comporterait une ArrayList déjà initialisée avec le bon nombre d'éléments.
Je n'arrive pas à croire que Struts ne permette pas de récupérer une liste de checkbox depuis un formulaire stocké en request; ou alors Struts est vraiment nase !!
Merci de m'éclairer.
Partager