• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

상품 수정 강의 질문있습니다.

24.04.28 19:19 작성 조회수 41

0

@GetMapping("/{itemId}/edit")
public String editForm(@PathVariable Long itemId, Model model) {
    Item item = itemRepository.findById(itemId);
    model.addAttribute("item", item);
    return "basic/editForm";
}

GetMapping에 {itemId}가 있는데 이변수는 어디서 받아오는건가요?

저는 item class에서 받아온다고 생각했는데 아래는 id로 소문자인데 itemId는 어디서 받아오는건가요?

package hello.itemservice.domain.item;

import lombok.Data;

@Data

public class Item {

private Long id;

private String itemName;

private Integer price;

private Integer quantity;

public Item() {

}

 

답변 1

답변을 작성해보세요.

0

OMG님의 프로필

OMG

2024.04.28

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

/변수/edit 이라는 패턴의 요청이 들어올 때의 변수에 해당하는 요청 정보를

'itemId라는 이름으로 받겠다' 라고 정의한 것으로 (Item 클래스와는 별개로)

 

itemId라는 이름은

@GetMapping("/{itemId}/edit")

public String editForm(@PathVariable Long itemId, Model model) {

이 해당 함수 안에서 함수의 파라미터와 매핑시켜주기 위한 용도입니다.

스프링부트 3.2 이전까지는 빌드 실행이 Gradle, IntelliJ 상관없이 빨간 글씨의 이름이 같으면 자동으로 매핑되었지만, 3.2부터는 Gradle만 자동으로 매핑됩니다.

 

감사합니다.

zzzzz님의 프로필

zzzzz

질문자

2024.04.29

Model model은 혹시 item class에서 받아오는건가요?

OMG님의 프로필

OMG

2024.04.29

스프링 프레임워크에서 Model 객체는 스프링 MVC 프레임워크에 의해 생성되고 관리됩니다.

컨트롤러 메소드가 호출될 때, 스프링은 Model을 메소드의 매개변수로 자동으로 전달합니다