스프링 MVC 하루만에 배우기 구판

12.02. 책 검색 기능 추가하기 - 2

연서은 2024. 10. 2. 11:31

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

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

list 메소드에서 뷰로 키워드 데이터를 전달하는 부분을 수정한다.

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"));  
}  

... 생략 ...  

}  

수정된 부분은 아래와 같다.

if (map.containsKey("keyword")) {  
mav.addObject("keyword", map.get("keyword"));  
}  

목록 페이지에는 keyword HTTP 파라미터가 있을 수도 있고, 없을 수도 있다. 따라서 파라미터가 있는 지 검사한다.

 
if (map.containsKey("keyword")) {  

파라미터가 있다면 뷰에 keyword를 전달한다.

mav.addObject("keyword", map.get("keyword"));  

12.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>  

... 후략 ...  

수정된 부분은 아래와 같다.

<p>  
<form>  
<input type="text" placeholder="검색" name="keyword" value="${keyword}" />  
<input type="submit" value="검색" />  
</form>  
</p>  

검색창 영역을 추가한다.
<form 태그의 기본 HTTP 메소드는 GET이기 때문에 검색 버튼을 클릭하면 검색 파라미터가 있는 목록 페이지 /list?keyword=검색어로 이동한다.

12.6. 책 검색 기능 확인

책 목록 페이지 http://localhost:8080/list에 접속한다.

 

검색어를 MVC 로 넣고 다시 검색 버튼을 클릭해서 검색 기능이 정상 작동하는 지 확인한다.


주소창에 keyword=MVC GET 파라미터가 추가된 것을 볼 수 있다.