-
Java Server에서 페이징 Html 태그 그리기Java & 배경지식/Java 개발에 도움되는 코드들.. 2020. 7. 24. 17:59반응형
2020년 7월 27일 기준 현 회사는
프론트에서 그려주는 것이 좋으나 아직 서버에서 그려주는 곳이 많다.
(페이징은 서버에서 Html태그를 그려주는 것이 아니라 프론트에서 그려줘야함 -> 서버 부하 줄이게)
점심시간에 잠시 코드를 줄이긴했는데 ..
더 보완할 곳이 보인다.( 처음, 이전, 다음, 마지막 계산하는 부분 / 페이지 그려주는 부분 / 각 값 계산하는 부분)
-> 차후 다른 method로 분리
/** * 페이징 처리된 Html 태그 * * @param totalrow 총 row 개수 * @param pageno 현재 페이지 * @param maxpage 보여줄 페이지 수 * @param maxrow 보여줄 row 수 * @return 페이지 Html 태그 */ public static StringBuffer getStatisticsPaging(int totalrow, int pageno, int maxpage, int maxrow) { StringBuffer pagehtml = new StringBuffer(); int totalpage; if (totalrow < maxrow) { totalpage = 1; } else { totalpage = totalrow / maxrow + (totalrow % maxrow > 0 ? 1 : 0); // 전체 페이지 } if (pageno > totalpage) { pageno = totalpage; } int groupno = pageno / maxpage + (pageno % maxpage > 0 ? 1 : 0); // 현재 그룹 번호 int endpage = groupno * maxpage; // 현재 그룹 끝 번호 int startpage = endpage - (maxpage - 1); // 현재 그룹 시작 번호 if (startpage < 0) { startpage = 0; } if (endpage < 0) { endpage = 0; } startpage = ((pageno - 1) / maxpage) * maxpage + 1; endpage = startpage + maxpage - 1; if (endpage > totalpage) { // 현재 그룹 끝 번호가 전체 페이지 수 보다 클 경우 endpage = totalpage; // 현재 그룹 끝번호와 전체 페이지 수를 같게 } int prevpageno = (pageno - maxpage) - (pageno - startpage); int nextpageno = endpage + 1; if (prevpageno < 1) { prevpageno = 1; } pagehtml.append("<ul>"); pagehtml.append("<li class='first'><a href='#' onclick='pageMove(1)'>처음</a></li>"); if (prevpageno >= 1 && startpage != 1) { pagehtml.append("<li class='before'><a href='#' onclick='pageMove(" + prevpageno + ")'>이전</a></li>"); } for (int i = startpage; i <= endpage; i++) { if (pageno == i) { pagehtml.append("<li class='active'><a href='#'>" + i + "</a></li>"); } else { pagehtml.append("<li><a href='#' onclick='pageMove(" + i + ")'>" + i + "</a></li>"); } } if (nextpageno < totalpage) { pagehtml.append("<li class='next'><a href='#' onclick='pageMove(" + nextpageno + ")'>다음</a></li>"); } pagehtml.append("<li class='last'><a href='#' onclick='pageMove(" + totalpage + ")'>마지막</a></li>"); pagehtml.append("</ul>"); return pagehtml; }
반응형'Java & 배경지식 > Java 개발에 도움되는 코드들..' 카테고리의 다른 글
Server에서 다른 api 호출 (0) 2020.07.27 List<VO> 정렬 DESC , ASC(2차 보완 완료) (0) 2020.07.05 poi (0) 2020.04.26 sftp 연결 (0) 2020.03.23 IP 가져오기 (0) 2020.03.18