2010-08-06 2 views
2

est le ArrayList défini dans lePuis-je utiliser itérateur dans itérateur sur jsp dans struts2.0? Ce

private ArrayList<LocWiseSaleParam> locWiseSaleList; 

where LocWiseSaleParam is myaction class 

J'utilise un itérateur sur jsp et l'accès à ses valeurs. mais je peux utiliser l'itérateur avec la même valeur que iterator nichée

<s:iterator value="locWiseSaleList" id="list" > 
      <s:iterator value="locWiseSaleList" id="list" > 
       <s:property value="productName"/> 
      </s:iterator> 
</s:iterator> 

Il est nécessaire de faire becausse je suis en train de créer une structure de tableau sur jsp

+0

Je ne fais pas de Struts, mais devriez-vous * logiquement * n'utiliser pas un 'id 'différent pour chacun? Sinon, l'interne peut remplacer l'externe, ce qui fait que l'externe ne fonctionne plus après la première itération. – BalusC

+0

ok c'était mon erreur ça peut être comme ça, l'ID moyen peut être différent mais la valeur serait la même. – Jitendra

Répondre

0

Je suppose que vous avez besoin de cette

<s:iterator value="locWiseSaleList" id="parent"> 
    <s:iterator value="locWiseSaleList"> 
     <s:property value="#parent.productName"/> //this will give value of parent iterator 
     <s:property value="productName"/>   //this will give value of the child iterator 
    </s:iterator> 
</s:iterator> 

AAh, je n'a pas remarqué ce poste est trop vieux

0

Cela devrait fonctionner. L'itérateur imbriqué demandera la pile de valeur pour le top nommé itérable "locWiseSaleList" et il devrait trouver le même objet. Je ne suis pas sûr si un nouvel itérateur est généré à chaque appel, mais je suppose que c'est, et alors cela devrait fonctionner.

Pourquoi ne pas simplement l'essayer?

2
<s:iterator value="locWiseSaleList" id="parent" stratus="id"> 
    <s:iterator value="locWiseSaleList{parent.id}"> 
     <s:property value="#parent.productName"/> //this will give value of parent iterator 
     <s:property value="productName"/>   //this will give value of the child iterator 
    </s:iterator> 
</s:iterator> 
+0

Ajoutez votre code à quatre espaces. Sinon, les balises html/xml seront masquées par l'analyseur. – Artemix

0

J'ai aussi eu l'exigence similaire et au-dessous d'un travaillé

<s:set var="temp" value="locWiseSaleList"/> 
<s:iterator value="locWiseSaleList" var="i" > 
     <s:iterator value="temp" var="j" > 
      ${i.productName} ${j.productName} 
     </s:iterator> 
</s:iterator> 

Vous pouvez utiliser les variables de compteur de boucle i et j et normales, mais ici i, j tiendra votre objet LocWiseSaleParam.

et notre instruction s: set va créer une copie de la liste.