如何使用struts2 ognl标记每行只显示4个项目

时间:2012-12-19 20:05:58

标签: jsp struts2

我试图在一个tr中显示4个值,在下一个tr中显示下四个值。但是使用我的下面的代码,所有值都显示在一个带有长水平滚动的tr中。

我想显示我的列表值:每行4个值,接下来tr中的下4个值

请检查我的代码并告诉我解决问题的逻辑..

<s:if test="themes.size() > 0">  
   <table> 
      <s:iterator value="themes" status="userStatus"> 
               <tr> 
                        <td height="90%"> 
                 <s:property value="themeName" />                     
                        </td> 
               </tr>     

     </s:iterator>  
</table>   

我尝试的是以下代码:

 `<s:if test="themes.size() > 0">  
      <table>  
         <s:set var="index" value="%{0}" />
               <tr> 
                   <s:iterator value="themes" status="userStatus"> 
                        <td height="90%">
                                 <s:property value="themeName" /> 
                        </td>  
                         <s:set var="newindex" value="%{1 + #attr.index}" />   
                            <s:if test="#attr.newindex %4==0">
                                </tr><tr>
                             </s:if> 
                  </s:iterator>  
               </tr>      
          </table>   
      </s:if> 

1 个答案:

答案 0 :(得分:0)

使用模块:

<s:if test="themes.size() > 0">
    <table>         
        <s:iterator value="themes" status="currentRecord">
            <s:if test="(#currentRecord.index % 4) == 0">
            <!-- Record is First of row: 1st, 5th, 9th etc -->
                <s:if test="#currentRecord.index > 0">                  
                    </tr><!-- It's not the first, close previous row -->
                </s:if>                 
                    <tr><!-- Open row -->
            </s:if>
                        <td>
                            <s:property value="themeName" />
                        </td>                      
        </s:iterator>                       
                    </tr><!-- close last open row -->
    </table>
</s:if>