본문 바로가기
스마트인재개발원/Spring

[Spring]게시판 만들기(20) - 페이징 처리하기 / 04최종코드zip

by 죠졍니 2022. 10. 24.
728x90
반응형
SMALL

페이징 처리하기

새로운 프로젝트 만들기

 

 

https://zxngnyee.tistory.com/entry/Spring%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B017-%EC%83%88%EB%A1%9C%EC%9A%B4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%8B%B5%EA%B8%80-%EB%8B%AC%EA%B8%B0-%EA%B8%B0%EB%8A%A51

 

[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

-> 실행화면 : 내가 누른 페이지에 대한 정보만 출력됨

 

-> 내가 누른 페이지에 파란색 표시

 

SpringMVC04.zip
0.06MB

728x90
반응형
LIST