8
votes

Struts 2 Itérateurs de nidification

Je ne peux pas croire comment quelque chose que ce simple peut sembler si difficile à faire dans des jambes de force 2.

C'est approximativement ce que j'aimerais faire comme cela serait fait en Java. xxx

qui devrait se traduire par quelque chose près de ceci dans les balises Stuts: xxx

i suppose parent.children devrait être quelque chose comme $ {% (# parent.children)} mais je n'ai pas trouvé de bonne combinaison de $ {% (# caractères à utiliser :-). Je pourrais également utiliser un lien vers une page expliquant quand utiliser lequel d'entre eux.


0 commentaires

4 Réponses :


13
votes

Essayez ceci:

<s:iterator var="parent" value="parents">
    <s:iterator var="child" value="#parent.children">
        <s:property value="#child.name"/>
    <s:iterator>
<s:iterator>


1 commentaires

Quelqu'un peut-il expliquer la signification du signe #? J'ai fait la même erreur que l'affiche originale. Merci!



4
votes

Cela fonctionne pour moi:

<s:iterator value="parents">
    <s:iterator value="children">
        <s:property value="name" />
    </s:iterator>
</s:iterator>


1 commentaires

Plus élégant que la réponse acceptée! Cela fonctionne car l'élément actuel de l'itèlance sera poussé sur la pile, il n'est donc pas nécessaire d'utiliser Var = "xxxx" pour y accéder.



1
votes

Voici comment le code JSP ressemblera à:

public class XBean
{    
private ArrayList<String> lstString=new ArrayList<String>();
private String name;
private Double amt;
private Integer id;
//Getters and setters of fields
}


1 commentaires

Vous voulez donc dire dans l'itération interne, je peux également avoir accès à la valeur de la partie de l'itération extérieure? Super.....



0
votes

pour Struts 2.3.x Vous pouvez utiliser cet exemple, extrait de http://truts.apache.org/release/2.3.3.x/docs/iterator-tag-examples.html

Dans cet exemple," pays "est une liste d'objets de pays, chacun dont a un nom et une liste de villes. Chaque ville a un nom. xxx

Ils se réfèrent à une position spécifique sur la pile: "[1]". Le haut de la pile, la position 0, contient la ville actuelle, poussée par l'itérateur interne; La position 1 contient le pays actuel, poussé là-bas par l'itérateur extérieur.


0 commentaires