读书人

s:iterator一起打印三条数据

发布时间: 2012-12-25 16:18:29 作者: rapoo

s:iterator一行打印三条数据

一般使用struts的iterator标签时,我们用它来遍历一个集合,集合当然是多种多样,比如最普通的那种,list里面放的全是用户对象,每个用户拥有name,age等属性,这时做打印的时候,在tr里面,一般是这样

Html代码
  1. <s:iterator value="customerList">
  2. <tr>
  3. <td><s:property value="name" /></td>
  4. <td><s:property value="age"/> </td>
  5. </tr>
  6. </s:iterator>

但是想想,一行就放这么两个字段,这样的话假使我只显示这两个,那就得每个用户占一行了,排版实在是太差了,假使有美工的话,我们可以让3个,或者4个用户放在一起,也就是这里的3个tr放一起,做一行。

这时候其实我们自己也能把三个用户放在一行显示,依旧是使用iterator,当然,会多出几个判断:

Html代码
  1. <s:iterator value="serviceLs" var="service" status="st">
  2. <s:if test="#service.isradio==0">
  3. <s:if test="#st.index%3==0">
  4. <tr>
  5. </s:if>
  6. <td><input type="checkbox" name="serviceChkLsList" class="serviceChk" value="${serviceamenityid}"/> <s:property value="serviceamenityname"/></td>
  7. <s:if test="#st.index%3==2||#st.last">
  8. </tr>
  9. </s:if>
  10. </s:if>
  11. <s:elseif test="#service.isradio==1">
  12. <s:if test="#st.index%3==0">
  13. <tr>
  14. </s:if>
  15. <td><input type="checkbox" name="serviceChkLsList" class="serviceRdo" value="${serviceamenityid}"/><input type="radio" class="rdo1" name="radio_${serviceamenityid}" value="0_${serviceamenityid}" />${serviceamenitynameAry[0]} <input type="radio" class="rdo1" name="radio_${serviceamenityid}" value="1_${serviceamenityid}"/>${serviceamenitynameAry[1]}</td>
  16. <s:if test="#st.index%==2||#st.last">
  17. </tr>
  18. </s:if>
  19. </s:elseif>
  20. </s:iterator>

效果图如下:


s:iterator一起打印三条数据

读书人网 >Web前端

热点推荐