ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.