2010-08-06 124 views
2

這是我可以在struts2.0的jsp上的迭代器中使用迭代器嗎?

private ArrayList<LocWiseSaleParam> locWiseSaleList; 

where LocWiseSaleParam is myaction class 

定義該ArrayList我使用的JSP一個迭代器和訪問其值。但我可以用迭代器具有相同值的嵌套迭代器

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

做becausse我在JSP

+0

我不做Struts,但是你應該在邏輯上*不是爲每個都使用不同的'id'?否則,內層可能會覆蓋外層,導致外層在第一次迭代後不再工作。 – BalusC 2010-08-06 13:06:55

+0

好吧,這是我的錯誤,它可以是這樣的,意思是ID可以是不同的 但值會相同。 – Jitendra 2010-08-07 04:51:28

回答

0

我想你需要這個

<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時,我沒有注意到這個帖子太舊

0

這應該創建一個表結構這是必要的。嵌套的迭代器會向頂層指定的迭代器「locWiseSaleList」詢問值棧,它應該找到相同的對象。我不確定是否每次調用都會生成一個新的迭代器,但我想是,然後它應該可以工作。

你爲什麼不試試呢?

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

用四個空格字符預先安裝您的代碼。否則html/xml標籤將被解析器隱藏。 – Artemix 2012-11-26 12:39:03

0

我也得到了類似的要求和下面的一個工作

<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> 

你可以使用i和j以及普通的循環計數器變量,但是在這裏,我將保存你的LocWiseSaleParam對象。

和我們的s:set語句將創建列表的副本。