使用strtuts2的iterator标签循环输出二维数组和嵌套集合

其实都一样的嵌套对象跟二维数组。
先看看嵌套对象吧。
<s:iterator id="d1" value="list1" status="s3">
     <tr>
    <s:iterator id="d2" value="list[#s3.index]" status="s4">
     <td>
      <s:property value="第二个循环出来的对象属性名称"/>
     </td>
        </s:iterator>
      </tr>
    </s:iterator>
这是二维数组
假设传递到页面上的二维数组是String[][] tempModel;,需要输出在一个table中,则代码如下
<table border="0" width="100%" id="table11">
   <s:iterator id="data3" value="tempModel" status="st3">
     <tr>
    <s:iterator id="data4" value="tempModel[#st3.index]" status="st4">
     <td>
      <s:property value="data4"/>
     </td>
        </s:iterator>
      </tr>
    </s:iterator>
</table>  

如果我们再加上一些判断条件,比如这个table的第一行是行头,第一列是列头,行头和列头正常显示,
而表格中数据则需要加上超链接,则将其中的
<s:property value="data4"/>这句修改为
Code
<s:if test="!(#st3.first)&&!(#st4.first)">
    <a href="<s:url action="starInfo" namespace="/query/star">
        <s:param name="id"><s:property value="id"/></s:param>
        <s:param name="starType"><s:property value="starType[#st4.index-1]"/></s:param>
        </s:url>">
       <s:property value="data4"/>
    </a>
</s:if>
<s:else>
    <s:property value="data4"/>
</s:else>

其中
<s:if test="!(#st3.first)&&!(#st4.first)">

这句话里的#st3.first这种用法是返回当前被迭代元素是否是第一个元素

<s:property value="starType[#st4.index-1]"/>这句话是特意用来举例说明#st4.index这种用法的,
index返回的当前被迭代元素的索引,String[] starType;是传递到页面上的一个数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值