검색 처리는 크게 서버사이드 처리와 화면 쪽의 처리로 나뉘어진다.
1.서버사이드처리
동적으로 검색 조건이 처리되는 경우의 실제 코딩은 Querydsl을 통해서 booleanBuilder을 작성하고, Repository 는 Querydsl로 작성된 booleanBuilder을 findAll()처리하는 용도로 사용한다.
코드양이 많아 보이지만 앞에서 Querydsl 사용법을 잘 숙지 했다면 별로 어렵지 않을것이다.
(@Query 방법보다 querydsl이 더 쉬운거같다.... @Query는 뭔가..어렵게 느껴진다.)
GetList()에 booleanBuilder를 추가 해준다.
※Querydsl 실행은 findAll()메서드로 해준다.
2. form 태그안에 정보는 버튼이벤트 처리로 submit한다.
목록 페이지 하단의 검색은 단순히page라는 값만을 처리하므로 type 과 keyword를 추가해준다.
간단히 말하면 key=?&type? 이런식으로 추가해 준것이다
글 번호를 눌렀을때 조회(detail)화면으로 들어가는 부분이다. type 과 keyword 부분을 추가해준다.(list페이지중)
기존 조회(detail)페이지에서 수정 화면이나 다시 목록 으로 돌아가는 버튼 부분에 keyword와 type을 추가해준다.
-> 이동할때 그 전에 사용했던 값(페이지 정보) 유지를 위해
(수정페이지 일부)
->수정 처리후 다시 조회 페이지로 이동하기 떄문에 검색 조건을 유지해야한다.
->조회 페이지는 page뿐 아니라 type과 keyword 처리 해야 한다.
->수정 페이지에서 다시 목록으로 돌아갈때도 type 와 keyword가 같이 전달 될수 있도록 이벤트 처리 부분도 수정 한다.
->수정한후 조회페이지로 이동시 검색조건을 유지할수 있도록 keyword 와 type을 리다이렉트 시켜준다