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

08. 책 수정 화면 만들기 - 1

연서은 2024. 9. 24. 11:28

8.1. 책 수정 화면 개요

책 수정 정보를 보여주기 위한 화면을 만든다.
브라우저에서 /update?bookId=1 주소에 접속하면 책 정보를 수정할 수 있는 화면을 보여준다.

8.2. 책 수정 화면 컨트롤러 메소드 추가

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

@RequestMapping(value = "/update", method = RequestMethod.GET)  
public ModelAndView update(@RequestParam Map<String, Object> map) {  
Map<String, Object> detailMap = this.bookService.detail(map);  

ModelAndView mav = new ModelAndView();  
mav.addObject("data", detailMap);  
mav.setViewName("/book/update");  
return mav;  
}  

책 수정 화면은 책 입력 화면 + 책 상세 화면이다. 책 입력 화면의 화면 형식을 그대로 따라가지만 데이터베이스에 저장된 데이터만 그려주면 된다.
따라서 책 데이터는 상세 화면 서비스에서 가지고 오고, 뷰는 책 임력 화면을 복사한다.

8.3. 책 수정 화면 뷰 작성

수정 뷰 화면은 생성 화면을 복사한다.
package explorer에서 src => main => webapp => WEB-INF => views => book => create.jsp 파일을 복사한다. ctrl + c 키를 누르거나 우클릭 후 copy를 클릭하면 된다.

book 폴더를 클릭하고 ctrl + v를 누르거나 우클릭 후 paste 를 클릭한다.


파일명을 update.jsp 로 저장한다.

 

src/main/webapp/WEB-INF/views/book/update.jsp

 
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%>  
<html>  
<head>  
<title>책 수정</title>  
</head>  
<body>  
<h1>책 수정</h1>  
<form method="POST">  
<p>제목 : <input type="text" name="title" value="${ data.title }" /></p>  
<p>카테고리 : <input type="text" name="category"  value="${ data.category }" /></p>  
<p>가격 : <input type="text" name="price"  value="${ data.price }" /></p>  
<p><input type="submit" value="저장" />  
</form>  
</body>  
</html>  

create.jsp 파일에 비해서 title, 'h1' 이름이 "책 생성"에서 "책 수정"으로 변경되었다.
또한 각 입력 항목의 value 항목들이 컨트롤러에서 전달받은 값을 보여주도록 수정되었다.

8.4. 책 수정 화면 확인하기

서버를 클릭하고 ctrl + alt + d를 눌러 디버깅 모드로 시작하거나 ctrl + alt + s를 눌러 서버 모드로 시작한다.
브라우저에 http://localhost:8080/update?bookId=1 주소로 접속해서 화면이 나오는지 확인한다.