IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ StrutsConsultez toutes les FAQ

Nombre d'auteurs : 25, nombre de questions : 96, dernière mise à jour : 23 février 2015  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.

SommaireFormulairesCheckbox et Radiobutton (2)
précédent sommaire suivant
 

Les checkboxes ont un fonctionnement particulier. En effet, une checkbox ne renvoie la valeur spécifiée dans l'attribut value que si elle est cochée.

Code xml : Sélectionner tout
<html:checkbox property="someprop" value="true">Yes</html:checkbox>

Dans l'action, on récupère la valeur en faisant :

Code java : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
String somepropValue = null; 
if((somepropValue = request.getParameter("someprop"))!=null) 
{  
  // ckecked 
  System.out.println("The box is checked and its value is " + somepropValue); 
} 
else  
{ 
  // not ckecked 
  System.out.println("The box is not checked"); 
  // set the value 
  someprop = "false"; 
}

Si la checkbox n'est pas cochée, alors vous devez explicitement donner une valeur (si vous en avez besoin). Dans le cas contraire, vous ne serez pas capable de détecter qu'une checkbox initialement cochée a été décochée.

Une pratique courante pour contourner ce problème consiste à associer dans l'ActionForm un membre booléen à l'état de la checkbox, et d'implémenter la méthode reset de l'ActionForm et d'y réinitialiser la valeur à false.
Ainsi, entre la soumission du formulaire et la magie du remplissage automatique des membres de l'ActionForm, la méthode reset sera appelée et assurera la prise en compte d'un décochage.

Code java : Sélectionner tout
1
2
3
4
5
6
7
8
9
public class MonForm extends ActionForm {  
  
  boolean alerterParMail = false;  
  
  public void reset(ActionMapping mapping, HttpServletRequest request) {  
    super.reset(mapping,request);  
    alerterParMail = false;  
  }  
}

Mis à jour le 18 mai 2004 OButterlin RanDomX

Tout d'abord, il s'agit d'itérer sur la collection d'objets en déclarant la variable de boucle identifiant l'élément courant (cf. id).
Pour chaque élément, le composant radio créé doit référencer (cf. idName) l'élément à exploiter par l'intermédiaire du nom de la variable définie précédemment.
Il s'agit également de définir la propriété de l'élément à utiliser pour définir la valeur associée au bouton radio (cf. value).

Code JSP : Sélectionner tout
1
2
3
4
5
<logic:iterate name="uneCollection" id="element"> 
   <html:radio property="nomRadio" idName="element" value="id"> 
      <bean:write name="element" value="nom"/> 
   </html:radio> 
</logic:iterate>

Ainsi, les valeurs possibles au niveau du formulaire pour l'élément identifié "nomRadio" seront celles de la propriété id de chaque objet de la collection.

Mis à jour le 4 juin 2008 c_nvy

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2022 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.