페이징 처리하기
새로운 프로젝트 만들기
[Spring]게시판 만들기(17) - 새로운 프로젝트 생성/ 게시판 답글 달기 기능1
게시판 답글 달기 SpringMVC02 모두 닫고, SERVER에서 DELETE하고, 프로젝트 전체 복사하여 SpringMVC03 만들기 프로젝트 Properties 들어가서 Context root를 sp03으로 변경 Server에 연결시키기 Tomcat에 오..
zxngnyee.tistory.com
2. entity에로직을 짜기 위한 vo 추가 ( 클래스)
Criteria.java 코드
package kr.smhrd.entity;
import lombok.Data;
@Data
public class Criteria {
private int page; // 현재 페이지 번호(1)
private int perPageNum; //한 페이지에 보여줄 게시글의 수
public Criteria() {
this.page=1;
this.perPageNum=10;
}
//현재 페이지의 게시글의 시작번호
public int getPageStart() {
return (page-1)*perPageNum; // 1-> 10
}
}
2. BoardMapper.xml에서 select문 수정
3. BoardMappr.java에서 getList 파라미터 추가
4. BoardController.java에 오류 수정
-> 글쓰기가 10페이지를 넘어가면 1페이지는 보이지만
2페이지를 볼려면
-> 다음처럼 url에 page=2 를 따로 처리해야 볼 수 있음
페이지 보이게 하기
1. entity에 PageMaker 클래스 추가하기
2. PageMaker 클래스 코드
package kr.smhrd.entity;
import lombok.Data;
@Data
public class PageMaker {
private Criteria cri; //page, perPageNum
private int totalCount; // 총게시물의 수
private int displayPageNum=10; // 하단에 출력되는 페이지 개수
private int startPage; // 시작페이지 번호
private int endPage; // 끝페이지 번호 ( 조정이 필요하다 )
private boolean prev; // 이전버튼(true, false)
private boolean next; // 다음버튼(true, false)
//전체 게시글의 수를 저장하는 메서드
public void setTotalCount(int totalCount) {
this.totalCount=totalCount;
pageMaker();
}
//페이징 처리에 필요한 계산하는 메서드
private void pageMaker() {
//1. 화면에 보여질 마지막 페이지 번호(계산수식)
endPage=(int)(Math.ceil(cri.getPage()/(double)displayPageNum)*displayPageNum);
//2. 화면에 보여질 시작페이지 번호
startPage=endPage-displayPageNum+1; //1, 11, 21
if(startPage<=0) startPage=1;
//3. 전체 마지막 페이지 계산
int tempEndPage=(int)(Math.ceil(totalCount/(double)cri.getPerPageNum()));
//4. 화면에 보여질 마지막페이지의 유효성검사
if(tempEndPage<endPage) {
endPage=tempEndPage;
}
//5. 이전페이지 버튼 존재여부
prev=(startPage==1)?false:true;
//6. 다음페이지 버튼 존재여부
next=(endPage<tempEndPage)?true:false;
}
}
3. BoardMapper.java
4. BoardMapper.xml코드
5. BoardController.java코드
- list 메서드에 페이징처리에 필요한 객체를 생성
6. list.jsp
페이징처리 관련 BootStrap
https://www.w3schools.com/bootstrap4/bootstrap_pagination.asp
Bootstrap 4 Pagination
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
-> 실행화면 : 내가 누른 페이지에 대한 정보만 출력됨
-> 내가 누른 페이지에 파란색 표시
'스마트인재개발원 > Spring' 카테고리의 다른 글
[Spring]게시판만들기(19) - 삭제하기 / 03최종코드zip (0) | 2022.10.24 |
---|---|
[Spring]게시판 만들기(18) - 게시판 답글 달기 기능2 (0) | 2022.10.22 |
[Spring]게시판 만들기(17) - 새로운 프로젝트 생성/ 게시판 답글 달기 기능1 (0) | 2022.10.22 |
[Spring]게시판 만들기(16) - 게시판 수정,삭제 본인만 가능하게 하기 (0) | 2022.10.22 |
[Spring]게시판 만들기(16) - 레이아웃 따로 만들기 (0) | 2022.10.22 |