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.
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.
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 :
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
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>ici la collection contient des enregistrements produitoccurence var="produitoccurence"
Code : Sélectionner tout - Visualiser dans une fenêtre à part session.setAttribute("produitoccurences ", obgetcollection);
je recupere les proprietés de chaque enregistrement comme ça
${produitoccurence.codeprod}
![]()
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>
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 ?
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();
![]()
Partager