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 :

comment utiliser logic iterate


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 66
    Points : 41
    Points
    41
    Par défaut comment utiliser logic iterate
    Bonjour à tous,

    J'aimerais savoir comment est-ce qu'on peut utiliser la fonction logic iterate dans struts ?
    et qu'est-ce qu'une collection ?

    Merci à vous.

  2. #2
    Membre régulier Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Points : 88
    Points
    88
    Par défaut qu'est ce qu'une collection
    une collection c'est comme un tableau plus developpé. la collection est un ensemble d'enregistrements ou de lignes. la collection nous facilite de travailler dans chaque enregistrement le supprimer le modifier ajouter une autre ligne
    notez que les enregistrements peuvent etre des instances d'une classe.

    pour logic, moi jutilise foreach pour parcourir la collection voila comment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <c:forEach var="produitoccurence" items="${produitoccurences}" varStatus="status">
     
    <tr><td >le code de produit:${produitoccurence.codeprod} </td></tr>
     
    </c:forEach>
    1 items="${produitoccurences} produitoccurences c'est le nom de collection dans la session ou request je l'enregistre comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttribute("produitoccurences ", obgetcollection);
    ici la collection contient des enregistrements produitoccurence var="produitoccurence"

    je recupere les proprietés de chaque enregistrement comme ça

    ${produitoccurence.codeprod}


  3. #3
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Une collection désigne toute classe qui implémente la classe java.util.Collection comme une ArrayList, ou toute classe qui implémente la classe java.util.Map comme une HashMap, ...

    Pour plus d'infos sur tous les types de collection pouvant être afficher via le tag logic:iterate, voir la doc sur le site officiel de Struts ici.

    Concernant l'utilisation du tag logic:iterate, si par exemple, tu as constitué une ArrayList de String et que tu as mis celle-ci dans le scope, tu peux l'afficher comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:iterate name="monArrayListDeString" id="item">
       <bean:write name="item"/>
    </logic:iterate>
    Si par contre tu as constitué une ArrayList d'objets de type Personne ayant pour propriétés nom et prenom et que tu l'as mise dans le scope, tu peux l'afficher comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <logic:iterate name="monArrayListDePersonnes" id="personne">
       <bean:write name="personne" property="nom"/>
       <bean:write name="personne" property="prenom"/>
    </logic:iterate>
    Dans l'attribut name du tag logic:iterate, il faut mettre le nom sous lequel tu as mis la collection dans le scope.

    Dans l'attribut id du tag logic:iterate, il faut mettre le nom que tu veux donner à chaque itération de la collection.

    Si la collection est une propriété de l'ActionForm, alors il faut mettre le nom du form-bean dans l'attribut name et le nom de la collection dans l'attribut property comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <logic:iterate name="nomDuFormBean" property="monArrayListDePersonnes" id="personne">
       <bean:write name="personne" property="nom"/>
       <bean:write name="personne" property="prenom"/>
    </logic:iterate>

  4. #4
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    OK,

    Merci à vous j'ai réussi à faire un logic iterate. J'ai pourtant encore une question concernant les collections, yacine.dev dit qu'elle facilite l'ajout et la suppression de ligne. Comment cela est t-il gérer ?

  5. #5
    Membre régulier Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Points : 88
    Points
    88
    Par défaut utiliser un Vector
    je sais pas quelle type de collection vous utilisez,voici lutilisation de type Vector

    Cette classe publique fait partie du «package» java.util et constitue une sous-classe de la classe abstraite AbstractList.
    Elle implante en particulier les interfaces Collection et List et possède Stack comme sous-classe.

    Elle implante une structure de tableau dynamique, c'est-à-dire dont la taille peut s'accroître (ou diminuer) en fonction des besoins, contrairement à celle des tableaux standard dont la taille est définie statiquement lors de l'instanciation.



    Quelques méthodes de l'interface
    Quelques-unes des méthodes permettant d'accéder à un vecteur sont les suivantes :

    boolean add (Object o) ou void add(int index, Oject o) qui permet d'ajouter un objet dans le vecteur soit à la fin, soit à une position donnée (le début correspond à 0) ;
    int size( ) renvoie la taille du vecteur, c'est-à-dire le nombre d'objets qui y ont été insérés
    int capacity( ) renvoie la capacité du vecteur, qui peut être différente de sa taille
    boolean contains(Objetc o) renvoie true si l'objet appartient au vecteur
    Object get(int index) renvoie sur l'objet en position spécifiée
    int indexOf (Object o) renvoie l'index de l'objet dans le vecteur (-1 si inexistant)
    boolean isEmpty() renvoie true si le vecteur est vide
    boolean remove(int index)
    Object set (int index, Object element) remplace l'élément en potion spécifiée par l'élément donné
    Object toArray() renvoie un tableau contenant le vecteur


    Exemple d'utilisation

    --> cat UseVector1.c
    import java.util.*;
    public class UseVector1{
    public static void main(String args[]){
    Vector vect = new Vector(5);
    vect.addElement(new Integer(3));
    vect.addElement(new String("Bonjour"));
    vect.addElement(new Float(3.14));
    System.out.println("taille du vecteur : " + vect.size());
    System.out.println("capacité du vecteur : " + vect.capacity());
    System.out.println(vect);

    for(int i=0; i < vect.size(); i++)
    if(vect.elementAt(i) != null)
    System.out.println("vect[" + i + "] : " +
    vect.elementAt(i).getClass().getName() + " --> "
    + vect.elementAt(i));
    else
    System.out.println("vect[" + i + "] est null");
    if(vect.elementAt(1) != null){
    vect.set(1, new Integer(1000));
    }
    System.out.println("après : " + vect);
    vect.remove(0);
    System.out.println("après remove : " + vect + " et taille = "
    + vect.size());
    }
    }

    --> java UseVector1
    taille du vecteur : 3
    capacité du vecteur : 5
    [3, Bonjour, 3.14]
    vect[0] : java.lang.Integer --> 3
    vect[1] : java.lang.String --> Bonjour
    vect[2] : java.lang.Float --> 3.14
    après : [3, 1000, 3.14]
    après remove : [1000, 3.14] et taille = 2





    utilisation avec l'obget
    Vector<Personne> cols=new Vector<Personne>();
    // cols.add(person);
    int index=5;//par exemple je veux supprimer lelement 5
    cols.removeElementAt(index);
    cols.setElementAt(personn, index);


    il ya plusieur methode qui vous facilite la manipulation des obgets

    le truc <Personne> est apartir de jdk 6 moin supprimez le est declarer comm ça Vector cols=new Vector();

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/07/2008, 14h35
  2. Réponses: 0
    Dernier message: 11/07/2008, 12h30
  3. [logic:iterate] probléme d'utilisation
    Par nikoo_27 dans le forum Struts 1
    Réponses: 3
    Dernier message: 27/11/2006, 15h23
  4. Réponses: 4
    Dernier message: 26/10/2006, 12h57
  5. Réponses: 1
    Dernier message: 27/09/2006, 16h21

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