본문 바로가기

BackEnd/Spring

[코드로 배우는 스프링 웹 프로젝트] java spring 책 검색 기능 추가하기

728x90
반응형

1. 책 검색 기능 : 목록 화면에서 검색어를 입력하고 검색 버튼 클릭하면 검색 주소로 이동

   ▷ localhost:8080/list?keyword=검색어

 

2. 책 검색 쿼리 작성

   ▷ src/main/resources/sqlmap/book_SQL.xml

   ▷ 기존의 책 목록 쿼리를 수정해서 검색 기능 추가

...(생략)...
	<!-- 책 검색 기능 쿼리 작성 -->
	<select id="select_list" parameterType="hashMap" resultType="hashMap">
		<![CDATA[
			select
				book_id,
				title,
				category,
				price,
				insert_date
			from
				book
			where 1 = 1
		]]>
		<if test="keyword != null and keyword != ''">
		and (title like CONCAT('%', #{keyword}, '%') or category like CONCAT('%', #{keyword}, '%'))
		</if>
		order by insert_date DESC
	</select>
</mapper>

 

 

3. 책 검색 서비스 레이어 (검색어 전달 기능만 추가되므로 수정하지 않습니다.)

 

4. 책 검색 컨트롤러 메소드 추가

   ▷ 컨트롤러에 검색 파라미터를 처리하는 부분을 추가, 키워드 파라미터가 있다면 뷰의 검색 상자에 보여지게 할 것

   ▷ src/main/java/sample/spring/yse/BookController.java

...(생략)...
	// 책 목록 컨트롤러 메소드 추가
	@RequestMapping(value = "list")
	public ModelAndView list(@RequestParam Map<String, Object> map) {

		...(생략)...
		mav.addObject("data", list);
		
		if(map.containsKey("keyword")) {
			mav.addObject("keyword", map.get("keyword"));
		}
		
		...(생략)...
}

 

 

5. 책 검색 뷰 수정(내용 추가)

   ▷ 책 검색 뷰를 수정해서 검색창이 보이도록 한다.
   ▷ src/main/webapp/WEB-INF/views/book/list.jsp

...(생략)...

	<h1>책 목록</h1>
	<p>
		<form>
			<input type="text" placeholder="검색" name="keyword" value="${keyword}" />
			<input type="submit" value="검색" />			
		</form>
	</p>
	<table>
    
...(생략)...

 

 

6. 책 검색 기능 화면 출력

 

1. 책 목록(http://localhost:8080/list) 접속 화면


2. '이것이' 검색 했을 시 화면


검색창이 제대로 출력된 것을 확인할 수 있습니다.

 

목록 화면에 검색할 수 있는 창과 검색 버튼이 나타납니다.

 

여기서 원하는 텍스트를 작성하고 버튼을 클릭하면 해당 글자가 포함된 목록들만 나타납니다.

 

이렇게 생성, 수정, 삭제, 목록, 검색 등의 기능을 구현해서 도서관, 서점 등에서 사용할 수 있는 홈페이지 기능들을 구현해보았습니다!

 

JSP보다는 코드가 좀 어려운 것 같아요,,ㅎㅎ

 

그래도 자주 사용한다고하니 이번에도 달려볼게요!!!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

728x90
반응형