<table>
  <c:forEach items="${forumList}" var="forum">
  <tr>
   <td colspan="3">${forum.forumName }</td>
  </tr>
  <tr>
  <%! int i=0; %>
   <c:forEach items="${childForumList}" var="childForum">
<c:if test="${forum.id == childForum.forumId.id}">
<td>${childForum.cForumName }</td>
<%i++;if(i%3==0) {%>
</tr><tr>
<%} %>
</c:if>
</c:forEach>
<%i=0; %>
  </tr>
  
</c:forEach> 
  </table>谁可以去除JSP的<% %>实现输出还有谁可以用Struts标签显示求高手解决

解决方案 »

  1.   


    <s:iterator value="currentList" id="currentList" status="status">
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        <s:if test="%{#status.index %3 == 0"}">
            </tr><tr>
        </s:if>
    </s:iterator>
      

  2.   


    我也知道用他的这个属性控制分行
    但是我打印的时候是有条件的<c:if test="${forum.id == childForum.forumId.id}">
    <td>${childForum.cForumName }</td>
    <%i++;if(i%3==0) {%>
    </tr><tr>
    <%} %>
    </c:if>
    问题就是这个哈
      

  3.   


    <table>
       <c:forEach items="${forumList}" var="forum">
       <tr>
    <td colspan="3">${forum.forumName }</td>
       </tr>
       <tr>
       <c:forEach items="${childForumList}" var="childForum" varStatus="status">
           <c:if test="${forum.id == childForum.forumId.id}">
           <td>${childForum.cForumName }</td>
           <c:if test="${(status.index+1)%3==0}">
     </tr><tr>
           </c:if>
           </c:if>
       </c:forEach>
      </tr>
    </c:forEach> 
    </table>
      

  4.   

    你要是用的不熟练,试试用display table方便,简单。
      

  5.   

    通过它的步长来控制是可以。。但是这样输出 和你排序有关。 所以无法实现如果我父显示的是a=1 b=2子显示的是aa=1 bb=2  cc=1 dd==2 ee==1 ff=2 gg==1 hh=2通过你的代码是 childForumList 的排序是12 12 12 12我遍历第一个成立 打印了aa 判断步长 后 不==0 不打印<tr>
    第二个的时候 不成立  不答应 不用判断
    第三个的时候 成立 打印 判断步长后  步长=2+1%3=0 打印<tr>这里 没有打印三个就实现了分行所以通过 步长 无法实现。。 需要在进入循环的时候定义一个变量 控制打印了几次
    让后打印后 进行自加
    循环结束后 吧变量清除 要不会影响下次打印
    问题就在于通过C不晓得怎么定义一个变量 如何自加通过<bean:define>可以定义变量 但是 不晓得怎么用 不晓得自加可以定义一个Int的变量不
    然后再循环体内自加