코드13-4 BookController.java
package com.springmvc.controller;
...
import javax.validation.Valid;
import org.springframework.validation.BindingResult;
@Controller
@RequestMapping("/books")
public class BookController {
...
@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);
...
}
➊ submitAddNewBook() 메서드는 사용자의 입력 값을 커맨드 객체 NewBook으로 매핑할 때 유효성 검사가 진행됩니다. 그 결과 값은 BindingResult 타입의 result 객체에 담깁니다.
➋ 유효성 검사로 발생된 오류가 BindingResult 타입의 result 객체에 있으면 뷰 이름 addBook을 반환하여 addBook.jsp에 출력합니다.