2016-09-26 1 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 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>
のようなものでなければなりません

/* 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に入っています。私はフルーツテーブルのデータをdbで取得するControllerから、このフルーツリストをまとめて取得します。果物の種類は何でもかまいませんが、果物のpk1に基づいて単純な "for each"ループを実行してから、 "if"節をjspにレンダリングすることはできません。すべての行はデータベーステーブルにpk1を持っています。

どのように私は小さなテーブルに分割する必要がありますようにあなたの提案は高く評価されます。

+0

jsp上のデータがわかるように、Bean構造とコントローラを共有してください。 –

+0

私はエンティティBeanクラスとコントローラコードを共有します。 – Sid

+0

さらに、jspで一意のグループフルーツタイプのリストを取得して、forループ内でif節を実行してテーブルをレンダリングできるようにすれば、私は解決策に近づくはずです。 – Sid

答えて

0

私は自分のjspにデータを送信する方法に関して、私のコントローラを変更することによって、データを動的テーブルに分割することができました。データをリストとして送信する代わりに、リストのマップとして送信します。そのようにして、私はマップをループし、グループとしてキーを取得し、リストである値を表示することができます。

したがって、問題は解決されます。

データの複製(つまり、テーブル行として機能するjspのリスト値)に関する新しい質問として投稿される別の問題があります。この問題は、ページが更新されるたびに追加される私は非常に奇妙な見つけるdbの重複した行。アプリケーションを再起動した場合にのみ、重複がjspから削除されます。