ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] 페이징 처리
    Programming/JAVA 2019. 11. 25. 12:26

    오늘은 페이징 처리를 해보겠다.

    거창하게 홈페이지에 당장 적용하는 것은 아니고, 페이지를 분리시켜서 표출할 수 있도록 하는 자바코드를 한번 살펴보자.

     

    // PaginationInfo.java
    
    public class PaginationInfo {
    	private int totalPage;
    	private int firstIndex = 0;
    	private int lastIndex = 0;
    	private int cntPerPage;
    	
    	public PaginationInfo(int totalCnt, int pageIndex, int cntPerPage) {
    		super();
    		this.cntPerPage = cntPerPage;
    		this.totalPage = totalCnt / cntPerPage;
    		
    		if (totalPage != 0) {
    			if(this.totalPage % this.cntPerPage > 0) {
    				this.totalPage++;
    			}
    			if(this.totalPage < pageIndex) {
    				pageIndex = this.totalPage;
    			}
    			
    			this.firstIndex = ((pageIndex - 1) * cntPerPage +1);
    			this.lastIndex = this.firstIndex + cntPerPage - 1;
    		}
    		else
    		{
    			this.totalPage = 1;
    			pageIndex = this.totalPage;
    			firstIndex = 1; 
    			lastIndex = totalCnt;
    		}
    			
    	}
    
    	public int getFirstIndex() {
    		return this.firstIndex;
    	}
    	
    	public int getLastIndex() {
    		return this.lastIndex;
    	}
    }

    일단 기본적인 코드는 이렇게 된다.

    totalPage가 0이라는 뜻은 매개변수로 받는 cntPerPage(한 페이지당 표시되는 갯수)가 totalCnt(총 아이템의 갯수) 보다 크다는 뜻이다. 따라서 totalPage가 0인 경우는 else 문에 따로 정의를 해주었다.

     

    이 것을 스프링 부트에 적용한다면?

    // RestController.java
    
    if(totalCnt > 0) {
    	PaginationInfo page = new PaginationInfo(totalCnt, params.getPageIndex(), params.getCntPerPage());
    	params.setFirstIndex(page.getFirstIndex());
    	params.setLastIndex(page.getLastIndex());
    	try {
    		list = restService.getVehicleCount(params);
    		LOGGER.info("차량 종류, 종류별 사고 발생 건수 조회 성공");
    		res.getResponse().getBody().getItems().setItem(list);
    		res.getResponse().getBody().setItems(res.getResponse().getBody().getItems());
    		res.getResponse().getHeader().setResultCode(CommonVariable.SUCCESS_CODE);
    		res.getResponse().getHeader().setResultMsg(CommonVariable.SUCCESS_MSG);
    		res.getResponse().setBody(res.getResponse().getBody());				
    	} catch (Exception e) {
    		LOGGER.error("차량 종류, 종류별 사고 발생 건수 조회 실패", e);
    	}

    Parameter만 잘 주고받는다면 정상적으로 실행될 것이다.

     

    REST API GET방식 이용한 페이징 처리

     

    'Programming > JAVA' 카테고리의 다른 글

    [JAVA] 엑셀 (excel) 파일 read 하는 법 (.xls, .xlsx)  (0) 2019.12.04
    [JAVA] 생성자 JAVA Constructor  (0) 2019.11.29
    [JAVA] Exception 처리  (0) 2019.11.19
Designed by Tistory.