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

问题描述:

这是我可以在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

我想你需要这个

<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时,我没有注意到这个帖子太旧

这应该创建一个表结构这是必要的。嵌套的迭代器会向顶层指定的迭代器“locWiseSaleList”询问值栈,它应该找到相同的对象。我不确定是否每次调用都会生成一个新的迭代器,但我想是,然后它应该可以工作。

你为什么不试试呢?

<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

我也得到了类似的要求和下面的一个工作

<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语句将创建列表的副本。