jsp通過s:iterator實現一對多展示__js

來源:互聯網
上載者:User

<tr>
          <th width="8%">
           序號
          </th>
          <th width="20%">
           會場名稱
          </th>
          <th width="26%">
           開始時間
          </th>
          <th width="26%">
           結束時間
          </th>
          <th width="20%">
           申請狀態
          </th>
         </tr>
         <%int index = 1;%>
         <s:iterator var="s" value="#request.usageList">
         <tr>
          <td style="text-align:center">
           <%=index++ %>
          </td>
          <s:if test="#strid!=#s.room_id">
            <s:set id="strid" value="%{#s.room_id}"/>
           <td rowspan="<s:property value="TOTAL_ROWS"/>" id="<s:property value="ROOM_ID"/>"   style="text-align:center">
            <a href="javascript:window.location.href='<%=path%>/conference_room_view.action?room_id=<s:property value="ROOM_ID"/>&opType=2';">
             <s:property value="ROOM_NAME"/>&nbsp;
            </a>
           </td>
          </s:if>
          <td style="text-align:center">
           <s:date name="START_DATE" format="yyyy-MM-dd HH:mm:ss"/>&nbsp;
          </td>
          <td>
           <s:date name="END_DATE" format="yyyy-MM-dd HH:mm:ss"/>&nbsp;
          </td>
          <td style="text-align:center">
           <%=CommonMethod.getConferenceStatus((String)request.getAttribute("STATUS")) %>&nbsp;
          </td>
         </tr>
         </s:iterator>

 

解釋一下吧,省的將來自己看的時候都想不起來了。

 

關鍵是紅色部分,該列表時展示各個會議室的全部申請,因此,會議室和申請記錄時一對多的關係。

每次迴圈都判斷一次,看看目前記錄中的ROOM_ID是不是和上一次的一樣,如果一樣則會議室名稱的TD不構造。如果不一樣,說明是新會議室,則聲稱TD。

 

rowspan="<s:property value="TOTAL_ROWS"/>"

這個是靈魂。

在第一次產生TD的時候就設定TD的佔得行數,這樣就能實現一對多的展示了。但是這個TOTAL_ROWS怎麼來,就要靠SQL的分析函數了:

COUNT(ROWID) OVER (PARTITION BY ROOM_ID) TOTAL_ROWS

 

在查詢項中添加上面這一項,就OK了。具體什麼意思,自己去看看SQL的解釋吧(ORACLE)。

 

美中不足的是,如果是分頁顯示的話效果不太理想。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.