강의

멘토링

로드맵

Inflearn Community Q&A

fpahsqlcj6392's profile image
fpahsqlcj6392

asked

Spring MVC Part 1 - Core technologies for backend web development

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

Written on

·

169

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() {

}

 

springmvc

Answer 1

0

안녕하세요. 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
Questioner

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

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

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

fpahsqlcj6392's profile image
fpahsqlcj6392

asked

Ask a question