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

두잇베스트님의 프로필 이미지

작성한 질문수

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

상품 수정

강사님 파라미터에서 데이터 받는것에 질문 드립니다.

20.11.06 17:42 작성

·

198

1

updateItemForm 메소드에서 강사님은

modelattribute로 데이터를 받으셨는데, modelattribute를 안쓰고 그냥 BookForm form으로 데이터를 받아도 잘 수정이되더라구요.  

1.modelattribute를 쓰신 이유가 궁금하며, 2. 파라미터로 데이터를 매칭할때 modelattribute를 쓰지 않는 상황에서 파라미터 변수가 form이라는 이름 때문에 매칭되는건지, 아님 Bookform이라는 객체타입를 인식해서 알아서 매핑되는건지 궁금합니다.

답변 4

1

두잇베스트님의 프로필 이미지

2020. 11. 07. 00:18

아 감사합니다.ㅎㅎ 덕분에 좋은 강의 듣고 있습니다. 질문도 해결해서 속이 시원하네요 ㅋㅋㅋ얼른 완강해서 2편도 질주하겠습니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

2020. 11. 07. 00:14

네 contoller -> view에 넘길때는 이름이 중요한데, HTTP 요청을 통해서 controller에 들어올 때는 사실 이름이 의미가 없습니다^^

심지어 @ModelAttribute를 생략해도 데이터를 바인딩 받을 수 있습니다.

0

두잇베스트님의 프로필 이미지

2020. 11. 06. 22:30

강사님 한가지 더 질문이 있습니다.

만약 파라미터가 (BookForm form)일때

@ModelAttribute("form") BookForm form 에서

model.addAttribute("form", form) //자동으로 호출된다고 하셨는데 여기서 템플릿 뷰화면으로는 updateItemForm.html의 form이 "form"에 담아서 보낸다고 하신건 이해했습니다.

근데 여기서 이 전에 updateItemForm.html에서 form으로 담아서 데이터를 보냈는데, 위 사진처럼 파라미터 변수 form은 이름이 같아서 매칭되어서 저장되는건지, @ModelAttribute("form") BookForm form / form 이름이 같아서 헷갈리네요.   

BookForm gg 로 해도 gg.getName , gg.getPrice 등등이 잘 실행되네요. 이유가 궁금합니다. 

무슨 이유로 updateItemForm.html에서 넘어오는 form이 BookForm 의 변수 form이 인식하는지..

0

김영한님의 프로필 이미지
김영한
지식공유자

2020. 11. 06. 20:43

안녕하세요. hangs0908님^^

네 사실 생략해도 똑같이 적용이 됩니다^^ 그런데 일부 차이가 있습니다.

다음 링크를 참고해주세요.

https://www.inflearn.com/questions/77749