컨트롤러 : ItemController 클래스
컨트롤러는 서비스에 서비스를 요청한다.
① GetMapping
@GetMapping("/items/new")
public String createForm(Model model){
model.addAttribute("form",new BookForm());
return "items/createItemForm";
}
② PostMapping
setter를 다 제거하고 static 생성자 메서드를 만들어서 생성자 주입, 파라미터로 넘기는 것이 더 좋은 설계다.
상품 저장이 끝나면 상품 목록 화면( redirect:/items )으로 리다이렉트한다!
@PostMapping("/items/new")
public String create(BookForm form){
Book book = new Book();
book.setName(form.getName());
book.setPrice(form.getPrice());
book.setStockQuantity(form.getStockQuantity());
book.setAuthor(form.getAuthor());
book.setIsbn(form.getIsbn());
itemService.saveItem(book);
return "redirect:/items";
}
타임리프 템플릿 : createItemForm.html
<form action=@{/items/new}" ... : 상품 등록 폼에서 데이터를 입력하고 Submit 버튼을 클릭하면 /items/new 를 POST 방식으로 요청