기존에 무한스크롤링으로 되어있던 상품리스트 페이지를 페이지네이션으로 바꿔야할 일이 생겨서 오랜만에 페이지네이션을 공부하게되었다.
현재 페이지 번호와 데이터 전체 수를 파라미터로 받아서 front로 보낼 수 있도록 함수를 구현했다.
private void getGoodsPaging(Map<String, Object> params, Map<String, Object> result){
int page = params.getInt("page"); //현재 페이지 (get)
int totalCount = params.getInt("totalCount"); //row 전체의 수 (get)
int beginPage; //출력 시작
int endPage; //출력 끝
int displayRow = params.getInt("pageSize"); //한 페이지에 몇 개의 데이터 (선택 set)
int displayPage = params.getInt("displayPageSize"); //한 페이지에 몇 번의 페이지까지 (선택 set)
boolean prev; //prev 버튼이 보일건지 안보일건지
boolean next; //next 버튼이 보일건지 안보일건지
endPage = ((int) Math.ceil(page / (double) displayPage)) * displayPage;
beginPage = endPage - (displayPage - 1);
int totalPage = (int) Math.ceil(totalCount / (double) displayRow);
if (totalPage <= endPage) {
endPage = totalPage;
next = false;
} else {
next = true;
}
prev = (beginPage == 1) ? false : true;
result.put("beginPage", beginPage);
result.put("endPage", endPage);
result.put("next", next);
result.put("prev", prev);
}
'Java' 카테고리의 다른 글
[Java]Lucy-xss-filter-servlet 적용하기 (0) | 2022.08.02 |
---|---|
[Java] ModelAndView와 String 리턴 (0) | 2020.06.16 |
[Java] 배열을 하나로 합치기(System.arraycopy) (0) | 2020.06.13 |