인프런 커뮤니티 질문&답변

Ksdaw님의 프로필 이미지
Ksdaw

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

createForm 관련 질문

작성

·

234

0

수업내용에서 item 등록 하고 조회 할때 create는 상품을 등록하는 코드인데

처음에 사용되는 createForm 코드는 어떤 코드인가요? 처음에 해당 컨트롤을 읽을때 createForm 코드가 자동으로 실행되는건가요? 만약 실행된다면 어떤 원리로 이게 바로실행되는건지 답변부탁드립니다. ㅠㅠ 강의열심히 보았는데 이해가 안되어서요 ㅠ 타임리프가 뭔가 처음에 이걸실행하는건지 ㅠㅠ

/*???*/

public String createForm(Model model) {
model.addAttribute("form", new BookForm());
return "items/createItemForm";
}

/* 상품등록 */

@PostMapping(value = "/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";
}

 

답변 1

0

안녕하세요. 김민성님, 공식 서포터즈 OMG입니다.

createForm는 스프링MVC가 생성하고 값을 세팅해줍니다! 이 부분은 영한님의 스프링MVC1편 강의에서 자세히 설명해주시는데요:)

간략히 이해하시기 쉽게 설명드리면 HTML의 태그 속성 중 name으로 지정한 이름과 자바 클래스의 필드명이 동일하고, 동일한 필드의 getter, setter로 바인딩이 동작하여 createForm에 화면에서 입력한 값들이 저장됩니다.

화면에서 입력하여 서버로 전송하기 위한 기준이 필요한데, 이를 화면은 name속성으로, 자바에서는 객체의 필드이름으로 동일할 경우 동작한다고 이해하시면 될 것 같아요 ^^

설명드린 내용을 이해한대로 한번 자바 클래스와 HTML 태그의 name="" 부분을 변경해가면서 어떻게 동작하는지 확인해보시는 것도 좋은 학습 방법이라 생각합니다 :)

감사합니다.

Ksdaw님의 프로필 이미지
Ksdaw

작성한 질문수

질문하기