Struts 2 s:iterator标签嵌套以及遍历双层List

转载来源:http://blog.sina.com.cn/s/blog_601b97ee01018t7x.html

今天碰到一个很有意思的问题,就是需要用Struts 2的iterator标签来遍历一个含有双层List的嵌套。

首先我们从最基础的说起,用iterator标签遍历一个List。

如果Action中有一个这样的不为null的属性:

private List<T> list;

那么在JSP中,就可以这样来遍历list:

<s:iterator value="list">
        

    <s:property value="propertyNameOfObjectInList"></s:property>

</s:iterator>

其中的propertyNameOfObjectInList是指list中对象的属性名。

下面我们再来看稍微复杂一点的情况,那就是嵌套使用iterator标签。

假设我们的Action中有如下属性:

private List<T> list1;

private List<T> list2;

那么,我们可以在JSP页面上这样来遍历。

<s:iterator value="list1">
    

    <s:property value="propertyNameOfObjectInList"></s:property>


    <s:iterator value="list2" id="inner">
        

       <s:property value="#inner.propertyNameOfObjectInList"></s:property>

   
    </s:iterator>

</s:iterator>

请注意,我们必须给里层的iterator标签加上一个id属性,这样,才能通过#id.propertyNameOfObjectInList来取得我们需要的值。

下面是遍历双层List的情况。

假设Action中有如下属性:

private List<List<T>> list;

那么,我们在JSP必须这样来遍历:

<s:iterator value="list">


    <s:iterator value="top" id="inner">


       <s:property value="#inner.propertyNameOfObjectInList"></s:property>

    </s:iterator>

</s:iterator>

这种情况下,必须把内层的iterator标签的value属性设定为”top”!这个top就代表栈顶。然后再指定id属性,并用”#“作为前缀来取值。

我今天碰到的情况是这样,在Action中:

private List<T> list1;

private List<List<T>> list2;

所以当然就要这样遍历啦:

<s:iterator value="list1">
    

   <s:property value="propertyNameOfObjectInList"></s:property>
    

   <s:iterator value="list2">


      <s:iterator value="top" id="inner">
        

         <s:property value="#inner.propertyNameOfObjectInList"></s:property>  
        

      </s:iterator>

     </s:iterator>

</s:iterator>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值