Je cherche à récupérer la valeur de la checkbox d'un formulaire, seulement voilà j'obtiens pas la valeur attendue... à savoir true si cochée et false si non cochée !
Et pourtant value="true".... j'y comprends plus rien !
Je cherche à récupérer la valeur de la checkbox d'un formulaire, seulement voilà j'obtiens pas la valeur attendue... à savoir true si cochée et false si non cochée !
Et pourtant value="true".... j'y comprends plus rien !
Ca ne marche pas comme ca:
<html:checkbox property="someprop" value="true">Yes</html:checkbox>
Dans ton action :
if(request.getParameter("someprop")!=null){
// checked
} else {
// pas checked
}
En gros si c coché, c renvoyé, sinon c pas envoyé.
En revanche si c coché, et que value="true" alors tu dois récuperer true en faisant request.getParameter("someprop").
@+
Normalement ça devrait marcher pourtant ça :
avec dans mon action myForm.getMaPropriete()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <html:checkbox name="MonFormulaire" property="maPropriete" value="true"/>
...
Oui en effet si la checkbox est coché, tu vas remplir la propriété maPropriété du bean MonFormulaire avec la valeur "true", sinon avec null.... ce qui peut faire un null pointer exception
ça y est je crois que j'ai compris d'où ça vient. Le formulaire me sert modifier les propriétés d'un bean enregistré en session et aussi dans une base Postgres.
J'avais rien trouvé de mieux que de créer une action struts pour initialiser les propriétés du bean formulaire avec les valeurs du bean enregistré en session avant de faire une redirection vers l'affichage d'un formulaire HTML pour la saisie utilisateur.
Ensuite je cherchais à y accéder avec des trucs du genre :
mais c'était pas très fin je l'avoue... puisque dans le mapping struts l'action "MonAction.do" était configurée pour utiliser le formulaire (ActionForm) MonFormulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <html:form action="MonAction.do"> ... <html:checkbox name="MonFormulaire" property="maPropriete" value="true"/> ... </html:form>
J'utilise donc le code suivant :
et ça marche ! J'avais pris la sâle habitude de mettre pour mes champs de formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <html:form action="MonAction.do"> ... <html:checkbox name="monBeanEnregistreEnSession" property="maPropriete" value="true"/> ... </html:form>
mais visiblement, c'était une sâle habitude ! C'est vrai, je l'avoue, ça ne me semblait pas très naturel...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2name="MonFormulaire"
C toujours le meme probleme avec Struts: comprnedre le flow est une chose difficile. Il faut bcp de pratique pour ne plus faire ces erreurs.
Mais ce qui est bien c que tu t'en sois rendu compte tous seul
Bon courage pour la suite
@+
Lionel
C'est pas évident c'est sûr... encore une fois la pratique montre ses avantages !
Merci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager