Spring
model1, model2 검색조건을 유지한 채로 페이지 이동하기
주니어주니
2023. 3. 11. 16:52
1) model1에서 주소록 검색 기능 구현
jsp
javascript
수정 전
페이징처리, 검색 기능에 대한 이해가 전혀 안 된 채로 그냥 구현하다보니까
어찌저찌 기능 구현은 했지만 진짜 엉망진창이었다.
지금 보니 일단 나도 내 코드를 이해를 못하겠고, jsp, javascript, xml 파일 전부 잘못 적었었다
검색한 채로 페이지를 이동했을 때 검색조건이 계속 사라졌다.
* jsp의 검색 form 부분
* jsp의 페이지 내비게이션
* javascript
==> 이게 맞는지 모르겠지만
페이지 이동은 GET 방식으로 URL에 쿼리스트링 형태로 데이터를 전송해야 하는데,
검색 버튼 클릭 이벤트 핸들러 함수는 submit으로 POST 방식으로 데이터를 전송하고 있기 때문에 안되는 것
검색어와 옵션도 get 방식 쿼리스트링으로 함께 전달해야 하는데,
input hidden 태그로 form 데이터에 포함시켜 전달하면 페이지 이동 시에는 form 데이터가 전송되지 않음
수정 후
* jsp의 form
- form을 GET 방식으로 변경
* jsp의 페이지 내비게이션
- 페이지 이동 경로 url에 keyword 추가
* xml 수정
<!-- 모든 주소록 조회 -->
<select id="getBooks" parameterClass="map" resultClass="com.semi.address.vo.Book">
select
*
from
(select
row_number() over(order by addr_book_no desc) rowNumber,
addr_book_no as bookNo,
addr_first_name as firstName,
addr_last_name as lastName,
addr_photo as photo,
group_no as groupNo,
addr_company as company,
addr_dept as dept,
addr_position as position,
addr_memo as memo,
addr_important as important,
addr_deleted as deleted,
addr_created_date as createdDate,
addr_updated_date as updatedDate,
addr_deleted_date as deletedDate,
emp_no as empNo
from
semi_address_books
where
addr_deleted = 'N'
and
emp_no = #empNo#
<dynamic>
<isNotNull property="keyword">
and (addr_first_name like '%' || #keyword# || '%'
or addr_last_name like '%' || #keyword# || '%'
or addr_company like '%' || #keyword# || '%'
or addr_dept like '%' || #keyword# || '%'
or addr_position like '%' || #keyword# || '%'
or addr_book_no in (select addr_book_no
from semi_address_contacts
<isNotNull property="keyword">
where contact_tel like '%' || #keyword# || '%'
</isNotNull>)
or addr_book_no in(select addr_book_no
from semi_address_emails
<isNotNull property="keyword">
where email_addr like '%' || #keyword# || '%'
</isNotNull>))
</isNotNull>
</dynamic>)
where
rowNumber between #begin# and #end#
</select>
+) 다른 방법
2) model2에서 회원 검색 기능 구현
spring
jsp
javascript
* jsp 검색~회원목록 전체를 감싸는 form
* jsp 페이지 내비게이션
* 자바스크립트