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. p> qui devrait se traduire par quelque chose près de ceci dans les balises Stuts: p> i suppose parent.children em> 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. P> p>
4 Réponses :
Essayez ceci:
<s:iterator var="parent" value="parents"> <s:iterator var="child" value="#parent.children"> <s:property value="#child.name"/> <s:iterator> <s:iterator>
Quelqu'un peut-il expliquer la signification du signe #? J'ai fait la même erreur que l'affiche originale. Merci!
Cela fonctionne pour moi:
<s:iterator value="parents"> <s:iterator value="children"> <s:property value="name" /> </s:iterator> </s:iterator>
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.
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 }
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.....
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. P> 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. P> p>