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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[Struts 1.1] Récupérer valeur d'une Arraylist via formulaire


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Par défaut [Struts 1.1] Récupérer valeur d'une Arraylist via formulaire
    Bonjour à tous ,

    Je rencontre un problème lorsque j'essaye de remplir un formulaire contenant des ArrayList.
    Je m'explique :

    J'ai un ArrayList dans mon ActionForm contenant une liste d'objet de type domainApprob :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      private String domainLabel = null;
      private boolean boolAutoValidation = true;
      private int authLevel = 0;
      private ArrayList levelList = null;
    Où "levelList" contient une liste d'objet de type levelAuth :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      private int level = 0;
      private String label = null;
    J'affiche cet Arraylist dans un formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <logic:iterate name="catalogForm" property="resourceApprobationDomainList" id="domain" indexId="indexid">
      <tr>
        <td class="classname">
          <bean:write name="domain" property="domainLabel"/>
        </td>
        <td class="classname" align="center">
          <html:checkbox name="domain" property="boolAutoValidation" styleId="autovalid"/>
        </td>
        <td class="classname">
          <html:select name="domain" property="authLevel" size="1" styleId="authlevelid" styleClass="select001" style="width:200px;">
            <html:optionsCollection name="domain" property="levelList" label="label" value="level"/>
          </html:select>
        </td>
      </tr>  
    </logic:iterate>
    A l'affichage, tout se passe bien. Mais je n'arrive pas à éditer les propriétés de ces objets. Lorsque je submit le formulaire, les nouvelles valeurs ne sont pas prises en compte.
    J'ai tenté de trouver une solution en parcourant internet, sans succès...

    Je vous serais infiniment reconnaissant si vous pouviez m'aider

    Merci beaucoup.

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Utilise plutôt les tags nested comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <nested:iterate property="resourceApprobationDomainList">
      <tr>
        <td class="classname">
          <nested:write property="domainLabel"/>
        </td>
        <td class="classname" align="center">
          <nested:checkbox property="boolAutoValidation" styleId="autovalid"/>
        </td>
        <td class="classname">
          <nested:select property="authLevel" size="1" styleId="authlevelid" styleClass="select001" style="width:200px;">
            <nested:optionsCollection property="levelList" label="label" value="level"/>
          </nested:select>
        </td>
      </tr>  
    </nested:iterate>

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Par défaut
    Merci beaucoup pour la réponse !

    Mon problème est maintenant à moitié résolu

    Ca fonctionne pour tout sauf la checkbox qui reste cochée quoiqu'il arrive.
    Aurais tu une idée stp ?

    Merci mille fois en tout cas

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    C'est l'éternel problème des checkbox : seules les valeurs des checkbox cochées sont transmises au submit du formulaire.

    Pour pallier à ce problème, comme la méthode reset de l'ActionForm est appelée avant les setters, il faut forcer le décochage de toutes les checkbox en mettant leurs valeurs à false dans la méthode reset.

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Par défaut
    Effectivement, après quelques tests, ça fonctionne comme ça.
    Ca répond pas vraiment à mes besoins mais disons que je vais faire avec.

    Merci beaucoup d'avoir résolu mon problème en tout cas

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    De rien.

    Mais pourquoi dis-tu que ça ne répond pas vraiment à tes besoins ?!

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Par défaut
    Et bien en fait parce que j'avais besoin de faire plusieurs submit intermédiaire avant d'envoyer définitivement ce formulaire. Du coup, même en partant avec des checkbox non coché, si un utilisateur cochait l'une d'elle, soumettait le formulaire, et qu'il avait une erreur de validation, il n'avais plus la possibilité de décocher l'un des checkbox.

    Du coup, pour répondre à ces besoins j'ai bidouiller une fonction en javascript, et maintenant, ça fonctionne nickel

    Merci encore !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer valeur d'une BDD via paramètre en URL
    Par bonuxis dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 19/11/2009, 11h11
  2. récupérer valeur d'une page à l'autre
    Par Echizen1 dans le forum Access
    Réponses: 1
    Dernier message: 24/09/2006, 11h10
  3. récupérer valeurs d'une liste
    Par Pitou5464 dans le forum Access
    Réponses: 7
    Dernier message: 07/09/2006, 19h02
  4. Récupérer valeur dans une BD
    Par Matmal11 dans le forum Linux
    Réponses: 6
    Dernier message: 05/09/2006, 16h28
  5. récupérer valeurs d'une liste déroulante
    Par karidrou dans le forum Access
    Réponses: 5
    Dernier message: 13/01/2006, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo