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

김혜원님의 프로필 이미지
김혜원

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

상품 등록 처리 - @ModelAttribute

@ModelAttribute와 생성자

작성

·

822

·

수정됨

0

안녕하세요.

@ModelAttribute 바인딩에 대한 질문 드립니다.

바인딩 방식으로 제가 생각한 것은

  1. 필드를 인자로 받는 생성자가 있다면 해당 생성자로 값을 주입한다.

  2. 없다면 기본 생성자와 Setter를 이용해 값을 할당한다.

이렇게 생각했습니다.

 

@Getter @Setter
public class Item {

    private Long id;
    private String itemName;
    private Integer price;
    private Integer quantity;

    public Item(String itemName, Integer price, Integer quantity) {
        this.itemName = itemName;
        this.price = price;
        this.quantity = quantity;
    }
}

이렇게 해놓은 상태에서 Controller addItemV2 메소드를 실행할 경우,

Cannot resolve parameter names for constructor public hello.itemservice.domain.item.Item(java.lang.String,java.lang.Integer,java.lang.Integer)
위와 같은 오류가 발생합니다.

 

기본 생성자를 추가했을 경우에는 정상 작동하구요.

1번의 방식으로 실행된다면 오류없이 실행되어야 한다고 생각했는데

바인딩 방식을 잘 못 이해하고 있는 것인지 궁금합니다.

답변 2

0

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

AI 답변 링크를 참고하시면 @ModelAttribute 동작방식에 대한 이해에 많은 도움이 되실 것 같습니다 😀

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

김혜원님께서 @ModelAttribute와 생성자의 바인딩 방식에 대해 질문해주셨군요. 스프링 MVC에서의 바인딩 방식에 대한 이해를 돕기 위해 관련 질문과 그에 대한 답변 링크를 안내해 드리겠습니다.

강의 ‘스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술’ 중 ‘@ModelAttribute 생성자’라는 제목으로 비슷한 주제에 대해 다룬 질문이 이미 있습니다. 해당 질문에서는 @ModelAttribute 사용 시 객체 생성과 관련하여 어떤 생성자가 호출되는지에 대한 메커니즘을 설명하고 있습니다.

질문 내용을 바탕으로 하신다면 다음 링크가 도움이 될 것입니다.

ModelAttribute 생성자

해당 링크를 참조하시면 @ModelAttribute와 관련된 객체 생성 방식에 대한 답변을 확인하실 수 있습니다.

더 궁금한 사항이 있으시다면 해당 링크를 통해 추가 질문을 남겨 주세요.

김혜원님의 프로필 이미지
김혜원

작성한 질문수

질문하기