Reference: Spring Docs - RequestParam
-
외부에서 API로 넘긴 parameter를 가져오는 annotation
-
HTTP 요청의 parameter를 method parameter로 binding 하는데 사용된다
-
주로 client가 전달한 요청의 parameter 값을 Controller method의 parameter로 받아와서 처리할 때 사용한다
-
ex)
@RequestParam("name") String name
외부에서 name이란 이름으로 넘긴 parameter를 method parameter name (String name) 에 저장한다
- Spring MVC
- query parameter, form data, multipart 요청의 parts와 매핑된다
- 이는 Servlet API가 query parameter와 form data를
parameters
라는 하나의 map으로 결합하기 때문에 발생하며, 이것은 request body의 자동 파싱을 포함한다
- Spring WebFlux
- query parameter만을 매핑한다
- query parameter, form data, multipart 3개의 타입을 다루려면
ModelAttribute
로 annotate 된 명령 객체 (command object)에 data binding을 사용할 수 있따
- 알아두기
- method parameter type이 Map이고 request parameter 이름이 지정된 경우, 적절한 변환 전략이 있을 때 request parameter 값이 Map으로 변환된다
- 만약 method parameter가
Map<String, String>
orMultiValueMap<String, String>
이고 parameter 이름이 지정되지 않은 경우, map parameter는 모든 request parameter 이름과 값으로 채워진다
name
- 요청 파라미터의 이름을 지정한다
required
- 요청 파라미터가 필수인지 여부를 지정한다
- 기본값은
true
- 만약
required=true
이고 해당 parameter가 요청에 없는 경우 예외가 발생한다
defaultValue
- 요청 parameter가 전달되지 않았을 때 사용할 기본값을 지정한다
value
- name() 의 alias