지난 프로젝트때 아예 신경을 안썻던 게시판을 이번에 간단히 만들기로 하였다.
다행히 지난번처럼 게시판의 종류는 많지 않게 간단히 DB설계를 하였고 최소한의 기능만을 가진
게시판을 구축하기로..
1) 게시판 내용을 가져오는 것 : 간단하다. List<E>로 받아서 그대로 가져오면 된다.
ModelAndView로 주면 되니 어려운 것은 없다.
2) 게시판 모양 구축 : 페이징 처리.. 이게 어렵다.
쉽지않다. 아직도 진행중이다.
책을 보고 따라 구현해봤으나 확 와닿지 않아서 내 스타일대로 바꾸었다.
2-1) 일단 페이징을 위한 클래스를 따로 생성했다. 책에선 이를 2가지로 구분했지만 나는 일단
유지보수를 생각안하고(...) 하나로 합쳤다.
페이징 클래스를 생성하는 이유는 다음과 같다.
2-2) 기능을 구현하기 위해 일단 흐름을 생각해본다.
게시판을 클릭하면 게시판.jsp로 넘어간다.
이때 db에 저장된 게시글들을 읽어올 것이다 ---- 1번
게시글이 많을 경우 아래에 페이지가 넘버링 되고 클릭하면 다른 게시들을이 나온다 -----2번
prev, next 등의 버튼을 통해서도 이동할 수 있다 -----3번
위의 3가지가 핵심이라 할 수 있다.
1번에서 중요한 점은 from - to를 명시해주는 것, 즉 내가 20개씩 글을 보여주겠다 생각 한다면
0-19, 20-40, 41-59 이런 식으로 짤라줘야 한다는 점.
이를 위해 시작글번호, 끝 글번호가 필요로 하고 이를 클래스에 멤버변수로 만들었다.
(끝글번호 = 시작글번호 + 20)
# 위 두개의 멤버변수는 쿼리문에서 limit 시작 글번호, 끝 글번호 로 불리게 된다.
2번. 게시글이 많다 라는 것은 총 게시물 대비 내가 보여줄 갯수를 비교하여 페이지를 만들어야 한다는 것이다.
만약 총 게시글이 110개이고 20개씩 보여준다면 총 6페이지가 나와야 한다.
그럼 아래 페이지 넘버링은 1부터 6이 될 것이다.
이를 위해서 총 게시글을 db에서 읽어오는 쿼리문과 메서드가 필요로 하고, 이를 저장 할 수 있는 멤버변수 또한 필요하다.
# 하지만 db에 12만게의 게시글을 만들어 놨더니 게시글 불러오는데에 너무 오래걸린다. 이거는 좀더 생각해 봐야할듯
3번 prev는 이전, next는 다음인데 여기서 next를 +1 씩 시킬지, +@로 할지 아직은 안정한 상태
다만 prev의 경우는 현재 페이지가 1일때는 보여서는 안되며 next역시 더이상 다음에 불러올 페이지가 없을 경우에
보여서는 안된다.
그렇기 때문에 prev, next 는 boolean 멤버변수로 설정하여 true, false 값으로 조절 하게끔 해야한다.
1,2,3번을 종합해보면 페이징 클래스에는
시작글번호, 끝글번호, 총글갯수, prev, next 등의 멤버변수들과 이를 설정해주는 다른 메서드들이 추가로 필요함을 알 수 있다.
'자바' 카테고리의 다른 글
3회차) 첨부파일 업로드 기능 (0) | 2018.06.04 |
---|---|
번외) No junits test found (0) | 2018.05.31 |
2.5회차, RestFul api에 대한 고민 (0) | 2018.05.21 |
2회차 회원 가입 기능 구현 (0) | 2018.05.21 |
Java, Spring 개인 프로젝트, 0) 기초 환경 설정. (0) | 2018.05.18 |