검색버튼을 눌렀을 때 tbList로 이동하겠다. 주소가 들어왔으니 컨트롤러로 이동
검색버튼을 누르면 (특정짓기위한)no,searchTxt, searchGbn이 넘어오게 됨
이걸 hashmap으로 받고 그걸 다시 getTbList에 넣어줌
하지만 우리가 기존에 만든 리스트는 검색을 고려하지 않고 만들었기때문에 getTbList에 빨간줄이 쭉 감
캡쳐할 당시에는 change를 마친상태였어서 없음 어쨋든
우리는 기존 것이 해쉬맵을 받을 수 있도록 변경해야 함
getTbList에 마우스를 갖다대고 세번째 Change method - 클릭
ITestService에 해쉬맵이 달림
오버라이딩은 이클립스가 알아서 해주지 않음 직접 TestService에서도 해쉬맵을 받을 수 있도록 추가
다음에 dao에도 params를 보내야하니 return에 params 추가
이제 쿼리로 params를 보내니 sql로 해쉬맵을 받음 이걸가지고 이제 검색기능을 구현할거임
mysql↓ 특정상황에만 생기는 조건은 선택적인 조건이기에 where 1 =1 이라는 조건을 줘서 필수 조건으로 만듬
검색어가 들어왔을 때에만 조건부분이 추가되면 좋겠음
그러기 위해선 Dynamic Query가 필요
Dynamic Query : 주어진 데이터에 따라 쿼리가 가변적인 것
mybatis에서 if문은 아래와 같이 작성 c:if문과 거의 비슷
searchtxt가 Null이 아니고 비어있지않다면 검색하겠다. => 검색어가 있다면
검색버튼을 누른적이 없을 때 : null
검색은 눌렀는데 아무것도 입력이 없을 때 : ' '
그 다음엔 제목인지 작성자인지 구분해야하고 el태그로 값(searchTxt)을 넣어줌
=> 이렇게까지만 완성하면 검색어를 입력했을 때 검색어와 옵션이 남아있지않는 버그가 있음
param. => 넘어오는 것이 있을 때에만 값을 가져오겠다이기 때문에 검색어가 있을때만 검색어를 가져오겠다.
searchTxt에 검색어가 입력됐을때 검색어를 넣어주겠다라고 하면 검색어가 없어지는 건 해결됨
넘어오는 값이 비어있지않다면 searchGbn에 세팅을 하겠다.
검색 상태까지 유지도 끝
이제 상세보기에서 돌아가기 버튼만들기
상세보기에는 검색데이터도 가져감
상세보기 갈 때 actionForm을 실행하는데 검색할때도 actionForm을 실행하기때문
우리는 이미 tb한테 검색데이터를 넘겨줬음 이전으로 돌아올때는 tb가 그냥 다시 넘겨주기만 하면 됨
데이터를 보낼 폼을 하나 만듬 page는 나중에 만든거
폼엔 no, searchGbn, searchTxt가 넘어옴
검색어를 입력하고 엔터를 누르면 폼이 그냥 이동되는 버그 발생 해결법
return false : 이벤트를 동작하지않겠다 타이핑되는 이벤트자체를 실행하지않겠다.
enter키 일때에는 이동을 안하겠다. 혹은 내가 준 이벤트만 실행하겠다라는 행위가 필요함
엔터가 들어왔을 때 검색은 가능하게 하겠지만 엔터를 눌러서 뭘 실행하지는 말라는 뜻
'Spring' 카테고리의 다른 글
게시판 글의 수정과 삭제, 조회수처리 (0) | 2022.02.17 |
---|---|
검색버그수정, 게시글등록과 editor (0) | 2022.02.16 |
DB와 연동된 게시판목록만들기, 상세보기 페이지 만들기 (0) | 2022.02.14 |
DI( 의존성 주입 ) (0) | 2022.02.09 |
(2022-02-09) 주소와 뷰 구분 , 화면에서 넘어온걸 컨트롤러에서 받는 법, 컨트롤러에서 view값을 전달 (0) | 2022.02.09 |