Created
August 4, 2019 13:03
-
-
Save localghost666/35defea8531b55b35eed8656b1f8c62b to your computer and use it in GitHub Desktop.
게시판 등의 페이지 처리를 위한 모델.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 게시판 등의 페이지 처리를 위한 모델. 목적 데이터의 전체 건수를 조회해 setTotalRows(rows)하고 calculate()해야 한다. | |
* | |
*/ | |
public class PaginationModel { | |
/** 현재 페이지 번호 */ | |
private Integer currentPage; | |
/** 한 페이지당 게시되는 게시물 수 */ | |
private Integer rowsPerPage; | |
/** 전체 게시물 수 */ | |
private Integer totalRows; | |
/** 전체 페이지 수 */ | |
private Integer totalPages; | |
/** 한 화면에 표시되는 페이지 리스트의 크기 */ | |
private Integer pageSize; | |
/** 현재 페이지 리스트의 첫 페이지 수 */ | |
private Integer startPageList; | |
/** 현재 페이지 리스트의 마지막 페이지 수 */ | |
private Integer endPageList; | |
/** 현재 페이지의 시작 ROWNUM */ | |
private Integer startRownum; | |
/** 현재 페이지의 마지막 ROWNUM */ | |
private Integer endRownum; | |
public PaginationModel() {} | |
public PaginationModel(Integer currentPage, Integer rowsPerPage, Integer pageSize, Integer totalRows) { | |
calculate(currentPage, rowsPerPage, pageSize, totalRows); | |
} | |
public Integer getCurrentPage() { | |
return currentPage; | |
} | |
public Integer getRowsPerPage() { | |
return rowsPerPage; | |
} | |
public Integer getTotalRows() { | |
return totalRows; | |
} | |
public Integer getTotalPages() { | |
return totalPages; | |
} | |
public Integer getPageSize() { | |
return pageSize; | |
} | |
public Integer getStartPageList() { | |
return startPageList; | |
} | |
public Integer getEndPageList() { | |
return endPageList; | |
} | |
public Integer getStartRownum() { | |
return startRownum; | |
} | |
public Integer getEndRownum() { | |
return endRownum; | |
} | |
public void setCurrentPage(Integer currentPage) { | |
this.currentPage = currentPage; | |
} | |
public void setRowsPerPage(Integer rowsPerPage) { | |
this.rowsPerPage = rowsPerPage; | |
} | |
public void setTotalRows(Integer totalRows) { | |
this.totalRows = totalRows; | |
} | |
public void setTotalPages(Integer totalPages) { | |
this.totalPages = totalPages; | |
} | |
public void setPageSize(Integer pageSize) { | |
this.pageSize = pageSize; | |
} | |
public void setStartPageList(Integer startPageList) { | |
this.startPageList = startPageList; | |
} | |
public void setEndPageList(Integer endPageList) { | |
this.endPageList = endPageList; | |
} | |
public void setStartRownum(Integer startRownum) { | |
this.startRownum = startRownum; | |
} | |
public void setEndRownum(Integer endRownum) { | |
this.endRownum = endRownum; | |
} | |
public void calculate() { | |
if (this.currentPage == null) { | |
this.currentPage = 1; | |
} | |
if (this.rowsPerPage == null) { | |
this.rowsPerPage = totalRows; | |
} | |
if (this.pageSize == null) { | |
this.pageSize = 1; | |
} | |
if (this.totalRows == null) { | |
return; | |
} | |
calculate(this.currentPage, this.rowsPerPage, this.pageSize, this.totalRows); | |
} | |
public void calculate(Integer currentPage, Integer rowsPerPage, Integer pageSize, Integer totalRows) { | |
this.currentPage = currentPage; | |
this.rowsPerPage = rowsPerPage; | |
this.pageSize = pageSize; | |
this.totalRows = totalRows; | |
this.totalPages = (totalRows - 1) / rowsPerPage + 1; | |
this.startRownum = (currentPage - 1) * rowsPerPage; | |
this.endRownum = currentPage * rowsPerPage; | |
this.startPageList = ((currentPage - 1) / pageSize) * pageSize + 1; | |
this.endPageList = startPageList + pageSize - 1; | |
if (endPageList > totalPages) { | |
this.endPageList = totalPages; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment