2. 도서 등록을 위해 BookController 클래스의 submitAddNewBook() 메서드를 다음과 같이 수정합니다.
코드 17-18 BookController.java
package com.springmvc.controller;
...
@Controller
@RequestMapping("/books")
public class BookController {
...
@GetMapping("/add")
public String requestAddBookForm(@ModelAttribute("NewBook), Book newBook) {
return "addBook";
}
@PostMapping("/add")
➊
public String submitAddNewBook(@Valid @ModelAttribute("NewBook") Book book, BindingResult result) {
if (result.hasErrors()) {
return "addBook";
}
MultipartFile bookImage = book.getBookImage();
String saveName = bookImage.getOriginalFilename();
File saveFile = new File("C:\\upload", saveName);
if (bookImage != null && !bookImage.isEmpty()) {
try {
bookImage.transferTo(saveFile);
book.setFileName(saveName);
} catch (Exception e) {
throw new RuntimeException("도서 이미지 업로드가 실패하였습니다.", e);
}
}
bookService.setNewBook(book);
return "redirect:/books";
}
...
}
➊ submitAddNewBook() 메서드는 폼에서 입력된 신규 도서를 데이터베이스에 등록합니다. 또한 신규 도서를 등록할 때 이미지는 C://upload/ 폴더에 업로드되도록 수정했습니다.