티스토리 뷰
스프링으로 개발을 하던 중
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
반응형
'개발 > Spring' 카테고리의 다른 글
[에러 해결] Post요청시 String형을 @RequestBody로 받는 경우 (0) | 2021.08.01 |
---|---|
[에러 해결] InvalidDataAccessApiUsageException (1) | 2021.07.25 |
[에러 해결] UnsatisfiedDependencyException (0) | 2021.07.24 |
스프링 어노테이션 정리 (0) | 2021.07.18 |
Controller (0) | 2021.07.18 |
댓글