Skip to content

Latest commit

 

History

History
48 lines (36 loc) · 2.04 KB

04_RequestParam.md

File metadata and controls

48 lines (36 loc) · 2.04 KB

@RequestParam

Reference: Spring Docs - RequestParam


@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) 에 저장한다


@RequestParam 사용하기

  • 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> or MultiValueMap<String, String> 이고 parameter 이름이 지정되지 않은 경우, map parameter는 모든 request parameter 이름과 값으로 채워진다

@RequestParam 의 속성

  • name
    • 요청 파라미터의 이름을 지정한다
  • required
    • 요청 파라미터가 필수인지 여부를 지정한다
    • 기본값은 true
    • 만약 required=true 이고 해당 parameter가 요청에 없는 경우 예외가 발생한다
  • defaultValue
    • 요청 parameter가 전달되지 않았을 때 사용할 기본값을 지정한다
  • value
    • name() 의 alias