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 페이지 내비게이션

 

 

* 자바스크립트