当前位置: 代码迷 >> Web前端 >> s:iterator一起打印三条数据
  详细解决方案

s:iterator一起打印三条数据

热度:404   发布时间:2012-12-25 16:18:29.0
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>  
 

效果图如下:


  相关解决方案