더북(TheBook)

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/ 폴더에 업로드되도록 수정했습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.