티스토리 뷰

개발/Spring

@RequestParam과 @PathVariable

|테드| 2021. 7. 24. 22:50

스프링으로 개발을 하던 중

Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'id' for method parameter type Long is not present]

위와 같은 WARN을 띄우면서 400 Bad Request 에러가 뜨는 것을 발견했습니다.

 

위의 코드에서 발생했는데요, 원인은 간단했습니다.

@RequestParam과 @PathVariable을 혼동해서 발생한 문제였습니다.

위와 같이 수정하여 해결했습니다.

정리하자면,

@RequestParam 은 GetMapping과 주로 쓰면서 URL주소에서 쿼리 스트링을 가져올 때 사용합니다.

예로 들어 www.~~~.~~~/~~~?name=abc 와 같은 주소에서 name을 가져올 때 사용합니다.

@PathVariable은 URL주소 자체에서 동적으로 값이 들어갈 수 있는 부분을 가져올 때 사용합니다.

이 때 PutMapping의 경우 @PutMapping("/api/{id}) 등으로 작성합니다.

728x90
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함