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 :

problème avec logic:iterate


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2002
    Messages : 141
    Points : 97
    Points
    97
    Par défaut problème avec logic:iterate
    je veux savoir comment récupérer un champs texte saisi dans un logic:iterate, en effet j'ai à chaque iteration un bean a affiché et un champ texte saisi qui doit étre récuperé a la soumission dans un checkBox (tableau chaque ligne se termine par un checkBox)
    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
    16
    17
    18
    19
    20
    21
    22
     
    <jsp:useBean id="lesCourriers" class="java.util.Vector" scope="request"/> <table width="100%" border="1"> 
    <tr> 
    <th bgcolor="Aqua"><bean:message key="refcourrier"/></th> 
    <th bgcolor="Aqua"><bean:message key="identifiant"/></th>
    <th bgcolor="Aqua" ><bean:message key="structure"/></th>
    <th bgcolor="Aqua" ><bean:message key="datebor"/></th>
    <th bgcolor="Aqua"><bean:message key="refboc"/></th> 
    <th bgcolor="Aqua"><bean:message key="dateboc"/></th> 
    <th bgcolor="Aqua"><bean:message key="nbrePieces"/></th>
    <th bgcolor="Aqua"><bean:message key="annotation"/></th> 
    <th bgcolor="Aqua" ><bean:message key="choix"/></th> 
    </tr>
     <logic:iterate id="myLoop" name="lesCourriers" >
     <tr> 
    <td><bean:write name="myLoop" property="refcourrier"/></td> <td><bean:write name="myLoop" property="idexpediteur"/></td> <td><bean:write name="myLoop" property="refbor"/></td> 
    <td><bean:write name="myLoop" property="datebor"/></td> <td><bean:write name="myLoop" property="refboc"/></td> 
    <td><bean:write name="myLoop" property="dateboc"/></td> <td><bean:write name="myLoop" property="nbrpiece"/></td> 
    <td><html:text property="annotation"/></td> 
    <td><input type='checkbox' value=??????? name='choix' /> </td> 
    </tr> 
    </logic:iterate> </table>
    je veux récurérer de chaque ligne l'annotation et le refCourrier
    j'ai une solution de concaténer les deux valeurs ; mais je ne peux pas recupérer le champs texte "annotation"

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Tu peux mettre comme valeur de la checkbox l'indice dans ta liste.
    Du coté contrôleur (ou ActionForm) tu retrouveras tout ce dont tu as besoin via l'indice :

    Pour les données en saisie "annotation"

    String[] values = request.getParameterValues("annotation");

    L'indice de la checkbox correspond à l'indice dans values et pour les données de la liste (implémentation List), tu as liste.get(indice) pour récupérer l'objet...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2002
    Messages : 141
    Points : 97
    Points
    97
    Par défaut
    Je n'ai pas compris
    comment je recupére les choix et puis comment je récupére les champs (annotatio et refCourrier)
    un bout de code SVP

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Bon, dans ta page JSP, tu fais ceci (passe le vecteur en session) :
    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
    <jsp:useBean id="lesCourriers" class="java.util.Vector" scope="session"/>
    <logic:iterate id="myLoop" name="lesCourriers" indexId="idx" >
    <tr> 
    <td><bean:write name="myLoop" property="refcourrier"/></td> 
    <td><bean:write name="myLoop" property="idexpediteur"/></td> 
    <td><bean:write name="myLoop" property="refbor"/></td> 
    <td><bean:write name="myLoop" property="datebor"/></td> 
    <td><bean:write name="myLoop" property="refboc"/></td> 
    <td><bean:write name="myLoop" property="dateboc"/></td> 
    <td><bean:write name="myLoop" property="nbrpiece"/></td> 
    <td><input type="text" name="annotation<%=idx%>"/></td> 
    <td><input type='checkbox' value="<%=idx%>" name='choix' /> </td> 
    </tr> 
    </logic:iterate>
    Et dans le contrôleur (ou l'objet ActionForm), tu récupères 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
    16
     
    Vector v = (Vector)session.getAttribute("lesCourriers");
     
    String[] choix = request.getParameterValues("choix");
     
    for ( int i = 0; i < choix.length; i++ )
    {
       // Tu récupère l'indice sélectionné
       int idx = new Integer(choix[i]).intValue();
     
       // Tu récupère l'objet (dans Vector) à l'indice sélectionné
       LeNomDeLaClasseDeLaListe elem = (LeNomDeLaClasseDeLaListe)v.elementAt(idx);
     
       // Tu récupère le champ en saisie à l'indice sélectionné
       String valeur = request.getParameter("annotation"+idx);
    }
    Voilà, c'est une façon de faire, et il y en a d'autres...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2002
    Messages : 141
    Points : 97
    Points
    97
    Par défaut
    c'est a dire je met quelque chose comme ça
    dans le jsp
    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  id="myLoop" name="lesCourriers"  indexId="indice" >
             <tr>
                <td><bean:write name="myLoop" property="refcourrier"/></td>
                <td><bean:write name="myLoop" property="idexpediteur"/></td>
                <td><bean:write name="myLoop" property="refbor"/></td>
                <td><bean:write name="myLoop" property="datebor"/></td>
                <td><bean:write name="myLoop" property="refboc"/></td>
                <td><bean:write name="myLoop" property="dateboc"/></td>
                <td><bean:write name="myLoop" property="nbrpiece"/></td>
                <td><html:text property="annotation" /></td>
                <td><input type="checkbox"  value="indice" name="choix"  /> </td>
     
             </tr>
        </logic:iterate>
    dans l'action

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    choix=affecterCourrierForm.getChoix();
                Courrierbo courrierbd= (Courrierbo)choix.get(indice);
                String annotation[] = request.getParameterValues("annotation");
    et dans ce cas la i ieme anntation correspend à la i ieme element de choix

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Non, ça n'ira pas du fait que seules les checkboxes cochées sont renvoyées.
    Il faut faire <input type="text" name="annotation<%=indice%>".../>

    Idem pour <input type="checkbox" name="choix" value="<%=indice%>" ... />
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Struts] Problème avec logic:equal
    Par Sniper37 dans le forum Struts 1
    Réponses: 9
    Dernier message: 03/03/2011, 15h32
  2. problème avec <logic:iterate>
    Par al3alwa dans le forum Struts 1
    Réponses: 16
    Dernier message: 10/12/2007, 17h32
  3. Affichage d'une Collection avec logic:iterate
    Par koukoya dans le forum Struts 1
    Réponses: 5
    Dernier message: 04/10/2006, 11h52
  4. Affichage d'une ArrayList avec logic:iterate
    Par mitje dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/09/2006, 10h02
  5. [EJB2.1 Entity] [BMP] [Struts] Problème avec <logic:iterate>
    Par romain3395 dans le forum Java EE
    Réponses: 2
    Dernier message: 07/06/2004, 10h12

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