SearchVO.java
package egovframework.fusion.board.vo;
public class SearchVO {
/* 계산되는 아이들 */
private Integer startPage; // 시작 페이지
private Integer endPage; // 마지막 페이지
private Integer realEnd; // 전체 마지막 페이지
private Integer totalRecordCnt; // 총 게시물 수
private boolean prev; // 이전 페이지 존재 유무
private boolean next; // 다음 페이지 존재 유무
private Integer firstIdx; // 해당 페이지에 보여질 시작 게시글 번호
private Integer lastIdx; // 해당 페이지에 보여질 마지막 게시글 번호
private Integer pageNum = 5;
/* 받아오는 아이들 */
private Integer curPageNo = 1; // 현재 페이지 번호
private Integer postNum = 10; // 한 페이지당 보여줄 게시물 수
private String keyword; // 키워드 검색
private String keywordCategory = "제목"; // 키워드 검색 카테고리 (제목, 내용...)
// 계산되는 아이들 세팅
public void pageSetting () {
// 시작 페이지
this.startPage = (((int) Math.ceil((float)this.curPageNo / (float)this.pageNum)) - 1) * this.pageNum + 1;
// 마지막 페이지 -> 1~10: endPage=10, 11~20: endPage=20....
this.endPage = this.startPage + this.pageNum - 1; // 올림, 10: 한 화면에 보여질 페이지 개수
System.out.println("endPage = " + endPage);
System.out.println("startPage = " + startPage);
// 전체 마지막 페이지
this.realEnd = (int) (Math.ceil((this.totalRecordCnt * 1.0) / this.postNum));
// 전체 마지막 페이지가 화면에 보이는 마지막 페이지보다 작은 경우
if (this.realEnd < this.endPage) {
this.endPage = this.realEnd;
}
// 이전 페이지 존재 유무 판단
this.prev = this.startPage > 1;
// 다음 페이지 존재 유무 판단
this.next = this.endPage < this.realEnd;
// 해당 페이지 마지막 게시글 번호
this.lastIdx = this.curPageNo * this.postNum;
// 해당 페이지 시작 게시글 번호
this.firstIdx = this.lastIdx - this.postNum + 1;
System.out.println("lastIdx = " + lastIdx);
System.out.println("firstIdx = " + firstIdx);
}
public Integer getStartPage() {
return startPage;
}
public Integer getEndPage() {
return endPage;
}
public Integer getRealEnd() {
return realEnd;
}
public Integer getTotalRecordCnt() {
return totalRecordCnt;
}
public void setTotalRecordCnt(Integer totalRecordCnt) {
this.totalRecordCnt = totalRecordCnt;
}
public boolean isPrev() {
return prev;
}
public boolean isNext() {
return next;
}
public Integer getFirstIdx() {
return firstIdx;
}
public Integer getLastIdx() {
return lastIdx;
}
public Integer getCurPageNo() {
return curPageNo;
}
public void setCurPageNo(Integer curPageNo) {
this.curPageNo = curPageNo;
}
public Integer getPostNum() {
return postNum;
}
public void setPostNum(Integer postNum) {
this.postNum = postNum;
}
public String getKeyword() {
return keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword;
}
public String getKeywordCategory() {
return keywordCategory;
}
public void setKeywordCategory(String keywordCategory) {
this.keywordCategory = keywordCategory;
}
@Override
public String toString() {
return "PageInfo [startPage=" + startPage + ", endPage=" + endPage + ", realEnd=" + realEnd
+ ", totalRecordCnt=" + totalRecordCnt + ", prev=" + prev + ", next=" + next + ", firstIdx=" + firstIdx
+ ", lastIdx=" + lastIdx + ", curPageNo=" + curPageNo + ", postNum=" + postNum + ", keyword=" + keyword
+ ", keywordCategory=" + keywordCategory + "]";
}
}
BoardController.java
/*
* 게시판 리스트 페이징
*/
@RequestMapping(value = "/board/boardList.do", method = RequestMethod.GET)
public String boardList(@ModelAttribute SearchVO searchVO, BoardVO boardVO, Model model) {
// 게시물 총 개수 조회
searchVO.setTotalRecordCnt(boardService.getBoardListTotCnt(searchVO));
searchVO.pageSetting();
//model.addAttribute("searchVO", searchVO);
// 게시글 조회
model.addAttribute("boardList", boardService.getBoardList(searchVO));
// 공지글 조회
model.addAttribute("noticeList", boardService.getNoticeList());
return "views/board/boardList";
}
반응형
'Spring' 카테고리의 다른 글
[Spring] 현재접속자 목록 (0) | 2023.07.30 |
---|---|
[Spring] jxls 을 이용해 table을 엑셀 파일로 생성해 다운로드 (0) | 2023.03.14 |
[Spring] 프론트(JSP) ↔ 백(Controller) 데이터 전달 (0) | 2023.02.27 |
[Spring] spring, vue.js 를 이용해 todoList 만들기 (0) | 2022.09.15 |