관리 메뉴

개발 블로그

FirstSpringBoard#6-5] 검색 기능결과 화면 페이징 처리 본문

Spring Framework 개발 일지/Spring으로 게시판 만들기

FirstSpringBoard#6-5] 검색 기능결과 화면 페이징 처리

anomie7 2017.09.19 21:16

안녕하세요.

그간 바빠서 포스팅을 못하고 있었네요.

javascript에 흥미를 느껴서 node.js랑 express, jquery에 빠져있느라 스프링에 너무 소홀했습니다.

저번 시간에 MySQL에서 제공하는 limit()를 이용해서 페이징 처리를 구현해보았습니다.

그 덕분에 컨트롤러의 로직이 대폭 줄어들었습니다.

DB에 가는 부담도 줄었고요.

하지만 검색 결과에 대해서 페이징 처리가 반영이 안됐었는데요.

이번 시간에는 검색결과 화면도 페이징 처리를 해보겠습니다.



검색 결과에 대해서 페이징 처리를 하기위해서는 검색결과에 대한 페이지 개수를 구해줘야합니다.

그러나 현재 Controller에서는 검색 유무와 관계없이 전체 게시물에 대한 페이지 개수를 가져옵니다.

boardService.getTotalCount(); 메소드에서 전체 게시물에 대한 페이지 개수를 리턴 받고있어요.

Mapper.xml 파일에서 페이지 개수를 구하는 매핑 구문을 수정해줘야합니다.


이전에는 전체 게시물 수를 구하던 것에 파라미터로 HashMap을 넣어줬습니다.

HashMap에는 검색 조건이 들어있어요.

검색 조건이 존재한다면 동적 SQL으로 검색결과에 따른 전체 게시물 수를 구할 수 있게 된겁니다.

컨트롤러도 수정된 매핑 구문에 맞춰서 수정해줍니다.

수정된 내용은 아래 소스코드와 같아요.



이로써 검색결과에 맞는 페이지 개수를 view 파일로 넘겨주게 되었습니다.

view 파일도 수정해줘야합니다.

그리고 페이지 이동할 때 앵커 태그에 query string으로 검색값을 넘겨줘야지.

페이지 이동도 원활하게 됩니다.

index.jsp 파일을 수정해주세요.




이제 저희가 구현하려던 기본적인 게시판 프로젝트는 완성이 되었습니다.

많은 도움이 되었는지 모르겠습니다.

기존 게시판 기능에 로그인, 회원가입, 유효성 검사, 댓글 기능, 파일 업로드 기능을 넣는 과정을 새로 연재 해보려고합니다.

그 동안 부족한 연재를 봐주셔서 감사합니다.

오늘 진행한 코드는 아래 링크에서 볼 수 있습니다.

https://github.com/anomie7/SpringPractice/commit/1e75c102f4e7cd34cd206a4838e73863f35331e9


0 Comments
댓글쓰기 폼