2016-09-26 2 views
0

jsp의 작은 테이블로 분할해야하는 큰 데이터 테이블이 있습니다. 테이블은 그룹 유형에 따라 생성됩니다. 수 시간을 알아 내려고했지만 과일 종류별로 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 

샘플

/* 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에서 얻은 것입니다. 나는 db의 과일 테이블에서 데이터를 얻는 나의 컨트롤러로부터이 과일 목록을 함께 얻는다. 과일 타입이 무엇이든 될 수 있기 때문에, 나는 pk1을 기반으로 한 과일에 대해 각각의 "for each"루프를 수행 할 수 없으며 jsp로 렌더링하기 위해 "if"절을 사용합니다. 모든 행에는 데이터베이스 테이블에 pk1이 있습니다.

작은 테이블로 나누는 방법에 대한 귀하의 제안은 높이 평가 될 것입니다.

+0

jsp에서 어떤 데이터가 나오는지 알 수 있도록 bean 구조와 컨트롤러를 공유 할 수 있습니까? –

+0

좋아, 나는 엔터티 빈 클래스와 컨트롤러 코드를 공유 할 것이다. – Sid

+0

또한 jsp에서 유일한 그룹 과일 유형 목록을 얻을 수 있도록 for 루프 내에서 if 절을 사용하여 테이블을 렌더링 할 수 있다면 솔루션에 더 가깝습니다. – Sid

답변

0

데이터를 내 jsp로 보내는 방법과 관련하여 내 컨트롤러를 변경하여 데이터를 동적 테이블로 분할 할 수있었습니다. 데이터를 목록으로 보내는 대신 목록의 맵으로 보내야합니다. 그렇게하면지도를 반복하고 그룹으로 키를 가져올 수 있으며 목록에있는 값을 표시 할 수 있습니다.

따라서 문제가 해결되었습니다.

데이터 복제와 관련하여 새로운 질문으로 게시되는 다른 문제가 있습니다 (즉, 테이블 행의 역할을하는 JSP의 목록 값) 페이지가 새로 고침 될 때마다 계속 추가됩니다. 내가 매우 이상한 것을 발견하는 db의 중복 행. 응용 프로그램을 다시 시작해야만 jsp에서 복제본이 제거됩니다.

관련 문제