如何按组显示数据?

时间:2013-12-20 13:16:36

标签: java jsp

我正在尝试从不同的表中加载订单数据。

我也使用JOIN查询从表中显示数据。

这是我的o / p: enter image description here

我想要这样的事情:

enter image description here

如果重复,那么订单ID,即此处的编号应显示一次。

我的JSP代码:

<table class="table table-condensed">
                        <%
                            List<String> oIdList = (List<String>)request.getAttribute("oIdList");
                            List<String> pNameList = (List<String>)request.getAttribute("pNameList");
                            List<String> pQtyList = (List<String>)request.getAttribute("pQtyList");
                            List<String> pTimeList = (List<String>)request.getAttribute("pTimeList");
                            List<Boolean> pStatusList = (List<Boolean>)request.getAttribute("statusList");
                        %>
                              <thead>
                                  <tr>
                                      <th width="8%">No.</th>
                                      <th width="23%">Product Name</th>
                                      <th width="20%">Product Qty</th>
                                      <th width="18%">Order Time</th>
                                      <th width="22%"><div align="center">Order Status</div></th>                                          
                                  </tr>
                              </thead>   
                              <tbody>

                              <%
                                    for(int i = 0; i<pNameList.size(); i++)
                                    {
                                        %>
                                            <tr>
                                                <td><%= oIdList.get(i) %></td>
                                                <td class="center"><%= pNameList.get(i) %></td>
                                                <td class="center"><%= pQtyList.get(i) %></td>
                                                <td class="center"><%= pTimeList.get(i) %></td>                                             
                                                <%
                                                    if(pStatusList.get(i))
                                                    {

                                                        %>                                                  
                                                            <td class="center"><div align="center"><span class="label label-success">Delivered</span></div></td>
                                                        <% 

                                                    }
                                                    else
                                                    {
                                                        %>
                                                            <td style="text-align: center;" width="9%"><span class="label">Pending</span></td>
                                                        <% 

                                                    }
                                                %>

                                            </tr>   
                                        <%
                                    }
                              %>


                              </tbody>
                         </table>

所以任何建议请..

3 个答案:

答案 0 :(得分:1)

您好。伙伴。试试这个

 for(int j =0,i = 0; i<pNameList.size(); i++) {
     %> <tr> <% 
    if(i==0){      
    j++;    
       %> <td><%= j %></td> <%
    }else if(oIdList.get(i) != oIdList.get(i-1)){
    j++;

         %> <td><%= j %></td> <%
    }else{
         %> <td></td> <%

    }    
   %>                                      

  <td class="center"><%= pNameList.get(i) %></td>
  <td class="center"><%= pQtyList.get(i) %></td>
  <td class="center"><%= pTimeList.get(i) %></td>  

答案 1 :(得分:0)

每次在循环周围将一个变量lastIdDisplayed设置为id(将其初始化为-1或其他无效的东西)。如果lastIdDisplayed == id,则不显示id。

答案 2 :(得分:0)

您的示例不是面向对象。您应该将所有这些字符串数组列表转换为 Order 对象。

然后遍历Orders(首先使用Comparable接口对它们进行排序,然后比较订单ID值)。

然后使用一些基本逻辑来检查最后的订单ID值是否与最后一个相同。