2022년 11월 18일 금요일 (게시판 검색기능)
● 검색창기능 뷰단에 코딩 main.jsp
제목,내용,주소를 선택하고
브라우저에서 검색버튼을 누르게되면 onclick="javascript:search()" 가실행된다.
select(제목,내용,주소)에 id를 column 부여하고
검색어 입력창에 id를 find 부여한상태에서 검색버튼을눌렀을때 ajax 함수가 실행된다.
url = board컨트롤러의 search 메서드가 실행되도록 설정되었다.
전송방식은 GET방식으로
data에는 select(제목or내용or주소) 와 검색어(ex: 맛집)을 담고
controller->service->dao->mapper->dao->service->controller를 거쳐
success에 결과값을 가져오게된다.
ex: 검색어 "맛집" 에 대한 게시물들을 보여주기위한 뷰단을 보여주기위해
location.replace()를 이용하여 main페이지와 게시판리스트 페이지에서 검색했을때
검색 결과 완료를 보여줄수있는 하나의 페이지 search.jsp로 이동하도록 설정해주었다.
● BoardController/ search 메서드
파라미터로 pageNum(페이지설정), @RequestParam("find") :검색어를 넣기위한 값을 String 타입으로
@RequestParam("column") 제목,내용,주소 선택값을 가져오기위해 String 타입으로 ,
session을 불러오기위해 설정해주었다.
검색어에 관련된 게시물 갯수를 불러주기위해서
searchCount와
게시물 정보를 불러주기위해서
listSearch를 사용하였다.
listSearch 는 배열로 보내줘야되기때문에
다시 , List<Board> searchList로 설정해주었다.
페이징부분을 설정해주고
mav객체에 모든 파라미터값들을 넣어준뒤에
mav객체를 리턴해줄것이다.
● Service
searchCount는 검색어에 맞는 게시물갯수만 출력하기 때문에
find와 column 객체만 파라미터로 받는다.
listSearch는 검색어에맞는 실질적인 게시물들을 보여줘야하기때문에
pageNum(페이징을위한 값) 과 limit(최대 페이지수) 객체를 파라미터 값으로 받는다.
● BoardDao
Mapper에 searchCount(find,column) 의 sql구문을 실행값을 가져온다.
● BoardMapper