Bonjour, je développe depuis un certain temps avec java et struts et je viens de remarquer un bogue assez important dans deux de mes applications.

Voilà, je construit dans une jsp une liste de checkbox dynamiquement à partir d'un xsl. Cette liste se retrouve dans un html:form et elle a son actionForm correspondante. Voici le code source :

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<tr>
                <td>Type de désistement :</td>
                <td>
                    <a class="ToutSelect" onclick="toutSelect()">Sélectionner tout </a><br/><br/>
<input type="checkbox" value="3" name="type" style="margin-left:-4px;">Courriel</input><BR/>
<input type="checkbox" value="2" name="type" style="margin-left:-4px;">Publipostage</input><BR/>
<input type="checkbox" value="1" name="type" style="margin-left:-4px;">Télémarketing</input><BR/>
                </td>
            </tr>

L'attribute name="type" représente un de mes membres dans mon ActionForm qui est une variable de type String[].

Code : Sélectionner tout - Visualiser dans une fenêtre à part
private String msType[] = null;
Lorsque je soumet mon formulaire une première fois et que je n'ai coché aucun checkbox, la variable msType contient null et c'est parfait comme ça.

Si j'en coche un, deux, ou peu importe, je peu récupère mes valeurs correctement en fesant dequoi du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
                for (int i = 0; i < msType.length;i++) {
                    sTempo = sTempo + msType[i] + ";";
                }
qui me donnerais dequoi du genre : 1;2;3 si les trois étaient sélectionnés...

Par contre, si après avoir validé mon formulaire je m'apercois qu'il y a des erreurs et que je réaffiche le formulaire et que je décoche tout les checkbox en laissant une erreur dans le formulaire (pour le réafficher encore) ma variable msType contient la dernière sélection. Pourtant, elle devrait contenir null puisqu'il n'y a plus de sélection...

Voici en quelque étape ce que je fait pour ceux qui n'aurait pas compris:
1-Création d'une erreur dans le numéro de téléphone(par exemple) et sélection des 3 checkbox.
2-Ma variable msType[] contient les 3 values des checkbox sélectionnés. Réaffichage du formulaire puisque le tel est invalide.
3-Je laisse l'erreur dans le teléphone et je décoche tout mes checkbox. Le formulaire se réaffiche encore puisque le tel est invalide.
4-Ma variable msType devrait être null mais elle contient les 3 values auparavant sélectionné..


Est-ce que quelqu'un a déja eu un problème du genre...

Si oui merci de me donner un hint. Désolé pour le roman que je viens de pondre

A+