2016-09-26 77 views
0

我有一個大的數據表,必須在jsp中拆分爲更小的表。表格將根據組類型創建。花了數小時試圖弄清楚,但無法按照水果類型組過濾jsp中的列表。根據jsp中的一個組將數據拆分爲多個html表

 @RequestMapping(value = { "dynamicFruitSettings" }, method = RequestMethod.GET) 
     public ModelAndView getDynamicComponents(Model model) { 

     LOG.debug("Entering fruit components page"); 
     ModelAndView mav = new ModelAndView(); 

     ArrayList<DynamicFruitSettings> resultList = null; 
      try { 
       resultList = (ArrayList<DynamicFruitSettings>) dynamicFruitService.loadAllFruitComponents(); 
       mav.addObject(resultList); 
      } catch (Exception ex) { 

       ex.printStackTrace(); 
      } 
      return new ModelAndView("fruitComponents" , "listFruitComponents", resultList); 
     } 




     @Entity 
     @Table(name = "fruits_components") 
     public class DynamicFruitSettings { 

     /** The pk1. */ 
     @Id 
     @SequenceGenerator(name = "fruits_components_seq", sequenceName = "fruits_components_seq", allocationSize = 1) 
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "fruits_components_seq") 


     private Long pk1; 

     private String fruit_type; 
     private String component_role; 
     private Double fruit_wt; 

     //getters and setters omitted for brevity 

示例,演示在JSP中的所有數據

/* DivTable.com */ 
 

 
.divTable { 
 
    display: table; 
 
    width: 100%; 
 
} 
 
.divTableRow { 
 
    display: table-row; 
 
} 
 
.divTableHeading { 
 
    background-color: #EEE; 
 
    display: table-header-group; 
 
} 
 
.divTableCell, 
 
.divTableHead { 
 
    border: 1px solid #999999; 
 
    display: table-cell; 
 
    padding: 3px 10px; 
 
} 
 
.divTableHeading { 
 
    background-color: #EEE; 
 
    display: table-header-group; 
 
    font-weight: bold; 
 
} 
 
.divTableFoot { 
 
    background-color: #EEE; 
 
    display: table-footer-group; 
 
    font-weight: bold; 
 
} 
 
.divTableBody { 
 
    display: table-row-group; 
 
}
<div class="divTable"> 
 
    <div class="divTableHeading">&nbsp;Fruits</div> 
 
    <div class="divTableBody"> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;shake</div> 
 
     <div class="divTableCell">&nbsp;10</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;ice cream</div> 
 
     <div class="divTableCell">&nbsp;20</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;cake</div> 
 
     <div class="divTableCell">&nbsp;40</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;candy</div> 
 
     <div class="divTableCell">&nbsp;5</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;shake</div> 
 
     <div class="divTableCell">&nbsp;13</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;ice cream</div> 
 
     <div class="divTableCell">&nbsp;30</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;cake</div> 
 
     <div class="divTableCell">&nbsp;90</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;candy</div> 
 
     <div class="divTableCell">&nbsp;25</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;shake</div> 
 
     <div class="divTableCell">&nbsp;19</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;ice cream</div> 
 
     <div class="divTableCell">&nbsp;20</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;cake</div> 
 
     <div class="divTableCell">&nbsp;40</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;candy</div> 
 
     <div class="divTableCell">&nbsp;15</div> 
 
    </div> 
 
    </div> 
 
</div>

我在jsp最後一下應該像下面

.divTable { 
 
    display: table; 
 
    width: 100%; 
 
} 
 
.divTableRow { 
 
    display: table-row; 
 
} 
 
.divTableHeading { 
 
    background-color: #EEE; 
 
    display: table-header-group; 
 
} 
 
.divTableCell, 
 
.divTableHead { 
 
    border: 1px solid #999999; 
 
    display: table-cell; 
 
    padding: 3px 10px; 
 
} 
 
.divTableHeading { 
 
    background-color: #EEE; 
 
    display: table-header-group; 
 
    font-weight: bold; 
 
} 
 
.divTableFoot { 
 
    background-color: #EEE; 
 
    display: table-footer-group; 
 
    font-weight: bold; 
 
} 
 
.divTableBody { 
 
    display: table-row-group; 
 
}
<div class="divTable"> 
 
    <div class="divTableHeading">Banana</div> 
 
    <div class="divTableBody"> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;shake</div> 
 
     <div class="divTableCell">&nbsp;10</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;ice cream</div> 
 
     <div class="divTableCell">&nbsp;20</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;cake</div> 
 
     <div class="divTableCell">&nbsp;40</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;candy</div> 
 
     <div class="divTableCell">&nbsp;5</div> 
 
    </div> 
 
    </div> 
 
</div> 
 
<br> 
 
<div class="divTable"> 
 
    <div class="divTableHeading">&nbsp;Peach</div> 
 
    <div class="divTableBody"> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;shake</div> 
 
     <div class="divTableCell">&nbsp;13</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;ice cream</div> 
 
     <div class="divTableCell">&nbsp;30</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;cake</div> 
 
     <div class="divTableCell">&nbsp;90</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;candy</div> 
 
     <div class="divTableCell">&nbsp;25</div> 
 
    </div> 
 
    </div> 
 
</div> 
 
<br> 
 
<div class="divTable"> 
 
    <div class="divTableHeading">&nbsp;Apple</div> 
 
    <div class="divTableBody"> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;shake</div> 
 
     <div class="divTableCell">&nbsp;19</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;ice cream</div> 
 
     <div class="divTableCell">&nbsp;20</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;cake</div> 
 
     <div class="divTableCell">&nbsp;40</div> 
 
    </div> 
 
    <div class="divTableRow"> 
 
     <div class="divTableCell">&nbsp;candy</div> 
 
     <div class="divTableCell">&nbsp;15</div> 
 
    </div> 
 
    </div> 
 
</div> 
 
<br>

顯示所有數據的示例是我目前在jsp中獲得的示例。我從我的Controller中獲取水果列表,它從db中的水果表中獲取數據。由於水果類型可能是任何東西,我不能在基於pk1的水果上做一個簡單的「for each」循環,然後做一個「if」從句將其渲染到jsp中。數據庫表中的每一行都有一個pk1。

對於如何將它們拆分成更小的表格,您的建議將受到高度讚賞。

+0

可以請你分享你的bean結構和控制器,這樣我們就可以知道jsp上會有什麼數據。 –

+0

好吧,我將分享實體bean類和控制器代碼。 – Sid

+0

此外,如果我可以在jsp中獲得唯一組水果類型的列表,以便我可以在for循環中執行if子句來呈現表格,那麼我應該更接近解決方案。 – Sid

回答

0

我設法通過改變我的控制器來將數據拆分成動態表格,並將數據發送給我的jsp。而不是將數據作爲列表發送,而是將其作爲列表映射發送。通過這種方式,我可以循環地圖,將密鑰作爲一個組獲取,並顯示列表中的值。

因此問題解決了。

我有一個不同的問題,將作爲一個新的問題發佈有關重複數據(即,作爲我的錶行的jsp中的列表值),這些數據不斷在頁面的每次刷新時被添加在db中重複行,我覺得很奇怪。只有當我重新啓動我的應用程序時,重複項才從jsp中刪除。

相關問題