• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

return "redirect:/items/{itemId}"; 질문

23.09.13 23:01 작성 조회수 386

0

아래코드에서 @PostMapping("/items/new") 이 컨트롤러가 호출이 되면 return "redirect:/items/{itemId}";에 의해 redirect되는데 그 다음 바로 아래 컨트롤러 @GetMapping("/items/{id}")가 호출되는거로 보여집니다. 그런데 redirect 경로는 끝에 {itemId}인데 왜 /items/{id}가 호출이 되나요 ? 같아야 호출되는거 아닌가요??

답변 1

답변을 작성해보세요.

1

David님의 프로필

David

2023.09.14

안녕하세요. 코더님, 공식 서포터즈 David입니다.

예를 들어, item의 id가 1이라고 한다면,
redirect 요청 경로는 /items/{itemId} => /items/1 이 됩니다.

/items/{id} 로 맵핑된 것은 /items/1 을 /items/{id} 형태로 인지하기 때문에 /items/{id}에서 /items/1을 처리하게 됩니다.

{itemId}, {id}가 동일하지 않다고 판단하신 이유는 itemId, id가 달라서라고 이해했습니다.

괄호 사이의 itemId, id는 해당 자리에 오는 어떤 것을 지칭하는 이름이기 때문에 이름이 서로 달라도 포맷(/items/{itemId}, /items/id})이 같다면 동일하게 처리 됩니다.

감사합니다.