2016-09-26 82 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中删除。

相关问题