본문으로 바로가기

[JSP개발] 게시판 - 방명록 목록 보기

category 코딩/JSP 2016. 12. 27. 08:00







1. 개요







방명록 등록 후 등록한 방명록이 보이도록 할 것이다. 방명록 방명록 목록은 방명록 등록 아래쪽에 나타나며, 한 번에 5개의 글이 보이도록 한다. 그리고 방명록이 5개가 넘을 경우 목록 하단에 페이지 번호가 보이게 할 것이다.



 JSP

  • GuestbookForm.jsp : 방명록 목록을 보여주는 것과 페이지를 보여주는 부분을 추가한다.

  • Header.jsp : 상단 메뉴에서 방명록 클릭 시 GuestbookListAction이 실행되도록 수정한다.


 Java

  • GuestbookListAction.java : 방명록 목록을 보여주는 Action이다. 방명록 목록을 가져오는것과 페이지를 생성하는것 2가지 작업을 처리한다.

  • GuestbookDAO.java : 방명록 목록과 방명록 개수를 가져오는 메서드를 추가한다.

  • GuestbookWriteAction.java : 방명록 등록 후 GuestbookListAction이 실행되도록 수정한다.




2. 소스 코드



 GuestbookDAO.java




방명록 목록을 가져오는 getGuestbookList( ) 메서드에서는 계층 쿼리를 사용한다. 계층 쿼리는 지난번 답글 구현과 비슷하다.



방명록에서는 한 페이지당 총 5개의 방명록이 출력되게 한다. 그래서 페이지 번호에 +4한 값을 쿼리에 세팅한다.




페이지 처리를 하기 위해서는 방명록 개수가 필요하다. getGuestbookCount( ) 메서드는 DB에 등록된 총 방명록의 개수를 반납하는 기능을 한다.





■ GuestbookListAction.java


GuestbookListAction은 방명록 목록을 가져오고, 페이징 작업을 하는 Action이다.




GuestbookForm에서 페이지 파라미터를 가져온다. 만약 파라미터 값이 null이 아니라면 현재 페이지(spage)로 지정한다.




페이징 작업을 하기 위해 DAO에서 방명록의 개수를 가져온다.




가져온 방명록 개수로 전체 페이지 수를 계산한다. 여기서 현재 페이지가 전체 페이지보다 크다면 현재 페이지 번호를 강제로 전체 페이지 번호로 지정한다. (38번 줄) 


이렇게 하는 이유는 아래와 같다.




만약 현재 페이지가 총 4개인데 주소창에서 위처럼 페이지 번호를 10을 입력한다. 당연히 10번째 페이지는 없으므로 화면에는 아무것도 출력되지 않는다. 이와 같은 경우를 막기 위해서 페이지 번호가 전체 페이지 번호보다 클 경우 페이지 번호를 전체 페이지 번호로 변경해준다.




시작과 끝 번호를 계산한다. 그리고 각각 페이지 변호들과 글 목록을 request 객체에 담는다.




다음 경로에 GuestbookForm.ge로 지정해 준다.





■ GuestbookCommand.properties


프로퍼티에는 방명록 목록 명령어인 GuestbookListAction.ge를 추가한다.




■ GuestbookForm.jsp




글 목록 부분의 <div id="listGuestForm"> 에 스크롤바가 생기도록 한다.




GuestbookListAction로부터 넘겨받은 방명록 목록을 화면에 출력한다. ArrayList 형태로 넘겨받았기 때문에 반복문인 <c:forEach> 태그를 이용하여 출력한다.




다음으로 페이지를 만드는 부분을 추가해 준다. 페이지가 5개를 넘어갈 경우 [이전]과 [다음]을 화면에 보여주도록 처리한다.





■ GuestbookWriteAction.java


방명록 등록 Action이다.




GuestbookWriteAction 에서는 방명록 등록 후 방명록 목록이 보이도록 NextPath를 GuestbookListAction.ge로 지정한다.





■ Header.jsp 




상단 메뉴에서 방명록을 클릭 시 방명록 목록이 보여야 하므로 GuestbookListAction.ge를 이동 경로로 지정한다.






3. 실행 결과






4. 소스코드 다운로드 (war 파일)



JSP_DEV.war




RSS구독 링크추가 트위터 이메일 구독