-
BoardAllSelectServlet(/board/boardAllSelect.do) -> boardSelectAllListPage.jsp
-
boardSelectAllListPage.jsp
- 검색 타입, 키워드 입력, 검색 버튼 폼태그 생성
- 설정 후 검색 버튼 클릭 ->BoardPostSearchServlet(/board/boardPostSearch.do)
-
BoardPostSearchServlet(/board/boardPostSearch.do) **
- 페이징 처리했던 Servlet(BoardAllSelectServlet(/board/boardAllSelect.do))과 코드 거의 동일하다(검색 키워드가 있냐 없냐의 차이)
- 인코딩
- currentPage 설정
- 검색 , 키워드 가져오기
- currentPage, 검색 타입 , 키워드 , userId 로 비즈니스 로직 진행( <-> Service <-> DAO)
-
Service
- 페이지당 목록 개수 설정
- 게시글 목록 가져오기 (selectSearchPostList 메소드)
-
DAO
- 게시글 시작 번호, 끝번호 설정
- 시작 : (현재 페이지*목록개수)-(목록개수-1)
- 끝: 현재 페이지*목록개수
- 검색 타입, 검색어에 따라 sql 문 설정(switch문 이용)
- 위치 홀더에 따라 세팅 설정 (if문 이용)
- 결과값 리턴
-
Service
- 결과값 타입 및 변수에 담고
- 페이지당 네비 개수 설정
- 네비 목록 가져오기(getSearchPageNavi 메소드)
-
DAO
- 검색된 총 게시글 개수 가져오기(totalSearchCount 메소드 활용)
- 검색 타입, 검색어에 따라 sql 문 설정(switch문 이용)
- 위치 홀더에 따라 세팅 설정 (if문 이용)
- 결과값 리턴
- 검색된 총 페이지 개수 설정= 검색된 총 게시글/페이지당 네비 개수->소수점 올림
- 페이지당 네비 시작 번호 끝 번호 설정
- 시작 : (((현재 페이지 -1)/페이지당 네비 개수)*페이지당 네비 개수)-1
- 끝 : 시작 +(페이지당 네비 개수-1)
- 끝 번호가 검색된 총 페이지 개수가 크다면 끝번호를 총 페이지 개수로 설정
- 네비 모양 만들기
- 문자열로 리턴
-
Service
- 결과 값 받고 2개의 결과값 하나로 담아서 리턴->BoardPostSearchServlet(/board/boardPostSearch.do)
-
BoardPostSearchServlet(/board/boardPostSearch.do)
- boardSelectAllListPage.jsp로 이동 with 리턴값과, currentPage, 키워드
-
boardSelectAllListPage.jsp
- 이전에 작성한 값 제외하고 추가로 넘어온 데이터(키워드) 가져 오기
- 키워드 값 유무에 따라 검색 결과여주기
- null : 검색한 글 없음
- !null: 검색 결과 페이징