스프링 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 파라미터가 추가된 것을 볼 수 있다.