자바 스프링 (페이징 하기)
그림과 같이 8개씩 페이징을 할 생각이다
서비스 단에서 보낸 boardList를 받아 forEach 반복문으로
div를 연속해서 출력해준다
컨트롤 단입니다.
@RequestParam() : value = "pageNum"
required = false : default값은 true로 무조건 값을 받아와야 하는 속성인데 값을 만약
못받아오면 에러를 발생시킨다.
반드시 false 로 설정을 두어야 받아오는 요청값이 없어도 에러를 발생시키지 않습니다 페이지는 무조건 1페이지이니
dafalutValue 값을 1로 설정해둡니다
페이징 들어갑니다
페이징 전략은 대충 이렇습니다
위의 사진은 DB에 저장된 게싯글만큼 페이지를 구하는 메소드입니다
반환은 ArrayList로 구해진 페이지 길이 만큼 더해줍니다 ex>(3페이지면)
{1,2,3}이런식 입니다
페이징 서비스 단 입니다.(pageNum = 클라이언트단의 페이지가 몇번째 인지)
받는 매게변수입니다
CountBoard는 select count 문으로 입니다
onePageBoardCount : 한페이지에 몇개의 게싯글을 올릴지 정해놓은것입니다.
위의 메모장처럼의 로직입니다
주의! mapper 매핑후의 dao에서 두개의값을 전달하려 할때는
반드시 @Param 어노테이션을 사용해야합니다
그림과 같이 설정해야 값이 전달됩니다 이거 몰라서 1시간동안 찾았습니다;;
select B.* from(select rownum rn, A.* from(select * from board_in order by board_id desc)A)B
where rn between #{startBoardNum} and #{endBoardNum}
위의 코드는 페이징을 위한 rownum을 이용한 오라클 sql 문법입니다
rownum rn 설정
A => rownum, 내림차순으로 정렬된 개시글을 정렬후 select하고
B => rownum에 따른 내림차순 완료된 게싯글을 1~8까지만 딱 select해주는 문법입니다
Author And Source
이 문제에 관하여(자바 스프링 (페이징 하기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ddpound/자바-스프링-페이징-하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)