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.
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; } } |
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.
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 çaLes 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 © 2024 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.