2009-05-03 9 views
0

J'ai un vecteur de haricots qui contient des informations que je veux afficher dans ma page jsp. Je suis actuellement en train d'utiliser des expressions Java standard pour afficher ceci, je veux regarder en utilisant jstl pour séparer les préoccupations. Est-ce possible et comment? J'ai été googling mais je n'arrive pas à trouver quelque chose.jstl/jsp - itération sur un vecteur de haricots

Répondre

1

Je pense que ce que vous cherchez est le < c: foreach> tag.

par exemple, l'impression de la valeur propriété myInt sur les instances de MaClasse (défini ci-dessous):

<c:foreach items="${vectors name}" var="pos" > 
     <!-- print the value of myInt for each position of the array. 
      Method getMyInt() must exist in pos object.--> 
     <c:out value="${pos.myInt}"/> 

     <!-- print the value of myInt for each composed instance. 
      Method getRelatedInstance() must exist in pos object. --> 
     <c:out value="${pos.relatedInstance.myInt}"/> 
</c:foreach> 

vecteur nom est le nom du vecteur, par exemple, après avoir fait une

Supposons que vous avez une classe myClass.

public class MyClass{ 
    private MyClass relatedInstance;  
    //some members and methods 

    public int getMyInt(){ 
    //return something 
    } 

    public MyClass getRelatedInstance(){ 
    return this.relatedInstance; 
} 

List<myClass> my_vector = getFilledList(); 
request.setAttribute("vectors name",my_vector) 
+0

Cela semble être bien pour les primitives comme les chaînes, mais j'ai du mal à travailler avec des collections de haricots qui contiennent divers objets. – user70835

+0

C'est excellent, j'étais un peu confus avec les classes exigeantes, et mes libs jstl jouaient (plusieurs onglets différents me disant toutes les différentes façons de les déployer). Merci beaucoup! – user70835

0

Pour Consacrer à l'exemple de Tom, voici quelque chose de plus concret:

<c:foreach items="${myList}" var="myItem"> 
    <c:out value="${myItem.someProperty}"/> 
</c:foreach> 

Où « Ma Liste » est un attribut de requête qui contient votre vecteur. Une erreur courante est d'oublier le $ {} autour de $ {myList} - si vous faites cela, JSTL ne lancera pas d'erreur, il générera simplement une liste pour vous avec un seul élément, la chaîne " ma liste".

+0

Merci, j'ai édité quelques erreurs dans ma réponse. – Tom