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

김아현님의 프로필 이미지
김아현

작성한 질문수

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

상품 등록 처리 - @ModelAttribute

addItemV1 오류 질문 드립니다

작성

·

355

·

수정됨

0

java: constructor Item in class hello.itemservice.domain.item.Item cannot be applied to given types;
  required: java.lang.String,java.lang.Integer,java.lang.Integer
  found: no arguments
  reason: actual and formal argument lists differ in length

오류 내용으로 인자값을 찾을수 없다고 나오는데

    @PostMapping("/add")
    public String addItemV1(@RequestParam String itemName,
                            @RequestParam int price,
                            @RequestParam Integer quantity,
                            Model model) {
        Item item = new Item(itemName, price, quantity);
//        item.setItemName(itemName);
//        item.setPrice(price);
//        item.setQuantity(quantity);
        itemRepository.save(item);
        model.addAttribute("item", item);
        return "basic/item";
    

이런 식으로 직접 적어주면 실행은 가능한데

set으로넣어줄땐 오류가 나네요

    @PostMapping("/add")
    public String addItemV1(@RequestParam String itemName,
                            @RequestParam int price,
                            @RequestParam Integer quantity,
                            Model model) {
       Item item = new Item(); <-여기서 오류가 납니다
       item.setItemName(itemName);
       item.setPrice(price);
       item.setQuantity(quantity);

객체생성할때 맨 위 에러코드가 나면서 인자값을 찾을수가 없다고 뜨는데 제가 뭘 놓친게있을까요?

 

현재 addItemV1 set을 이용한 메서드만 오류가 납니다

addItemV2

addItemV3,4 정상 작동됩니다

답변 1

0

안녕하세요. 김아현님, 공식 서포터즈 David입니다.

Item 클래스에 기본 생성자 (파라미터를 가지지 않는 생성자)가 존재하는지 확인해 주세요.

감사합니다.

김아현님의 프로필 이미지
김아현

작성한 질문수

질문하기