`

s:iterator一行打印三条数据

 
阅读更多

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

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

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

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

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

效果图如下:


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics