struts2中iterator标签的嵌套使用(if/else)

 

要分行和列显示同一个属性的不同记录,即该属性存在于数据库的不同记录结果
如:我要显示与zhaopin对应的danweixinxi中的name的所有记录,每行显示3列
根据记录条数计算行数,代码如下:
<table>

<tr>
     <s:iterator id="zhaopin" value="list" status="st">          
     <td><s:property value="#zhaopin.danweixinxi.name"/></td>
     <!-- 判断是否整除3 也可以这样写 #st.getIndex()%3==0 -->
         <s:if test="#st.modulus(3)==0">
          <s:if test="#st.last">
         </tr>
          </s:if><s:else>
                  </tr><tr>
                  </s:else>
         </s:if>
</s:iterator>

</table>

这里list是存在于Action中的zhaopin集合属性,所以可以直接读取,需要通过id属性值来读取对应的信息值。关键是:这里的循环,tr,td的控制,#st.last,判断是否到了最后一条记录来结束所有行,否则换行继续读取数据。
iterator标签还有如下方法:
  boolean isEven() 当前迭代元素索引是否为偶数;
  boolean isOdd() 当前迭代元素索引是否为奇数;
  boolean isLast() 是否为最后一条元素;
  boolean isFirst() 是否为第一条元素。
用这些方法判断元素位置及个数判断就很方便,以利于有效换行。

 

也可以直接在循环里用:

    <s:if test="#st.modulus(6)==0">
             <br></br>
    </s:if>

这样就不会有网页标签的书写错误。

 

进一步改成一下方式更可以避免间隔过大问题:

    <s:if test="#st.modulus(6)==0">
             <br/>
    </s:if>

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值