10.02. 책 삭제 기능 만들기 - 2

10.4. 책 삭제 기능 서비스 클래스 메소드 생성

src/main/java/sample/spring/yse/BookServiceImpl.java

@Override  
public boolean remove(Map<String, Object> map) {  
int affectRowCount = this.bookDao.delete(map);  
return affectRowCount == 1;  

}  

삭제의 경우 수정과 동일하게 한개의 행이 제대로 영향받았는지만 검사하면 된다.

return affectRowCount == 1;  

10.5. 책 삭제 기능 서비스 인터페이스 메소드 시그니쳐 생성

src/main/java/sample/spring/yse/BookService.java

boolean remove(Map<String, Object> map);  

서비스 인터페이스 메소드 시그니쳐는 서비스 클래스와 동일하게 맞춘다.

10.6. 책 삭제 기능 컨트롤러 메소드 추가

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

 
@RequestMapping(value = "/delete", method = RequestMethod.POST)  
public ModelAndView deletePost(@RequestParam Map<String, Object> map) {  
ModelAndView mav = new ModelAndView();  

boolean isDeleteSuccess = this.bookService.remove(map);  
if (isDeleteSuccess) {  
mav.setViewName("redirect:/list");  
}else {  
String bookId = map.get("bookId").toString();  
mav.setViewName("redirect:/detail?bookId=" + bookId);  
}  

return mav;  
}  

삭제가 성공했는지 확인한다.

boolean isDeleteSuccess = this.bookService.remove(map);  

삭제가 성공했으면 상세 페이지가 없으므로 목록으로 리다이렉트한다.

mav.setViewName("redirect:/list");  

삭제가 실패했으면 다시 상세 페이지로 이동한다.

mav.setViewName("redirect:/detail?bookId=" + bookId);  

10.7. 책 삭제 확인

상세 페이지에서 웹 브라우저 개발자도구를 켠다. F12를 누르면 된다. 이후 network 탭을 선택해 둔다.
삭제 버튼을 클릭한다.

목록 페이지로 전환되는 것을 확인한다. 아직 책 목록 페이지를 만들지 않았으므로 404 오류가 나는 것이 정상이다.

 

주소창을 보면 http://localhost:8080/list로 바뀌었음을 확인할 수 있다.
개발자 도구 network 탭에서 delete 항목을 선택해 보자. 상세보기 가장 아래에 보면 Form data 섹션이 보이고 bookId: 1이 보인다. 바로 http POST 파라미터다.


이처럼 브라우저에서 서버로 전달한 파라미터는 브라우저를 통해 확인할 수 있다.