스프링 MVC 1 - HTTP 요청 파라미터 - @RequestParam
HTTP 요청 파라미터 - @RequestParam
스프링이 제공하는 @RequestParam을 사용하면 요청 파라미터를 매우 편리하게 사용할 수 있다.
requestParamV2
- @RequestParam: 파라미터 이름으로 바인딩
- @ResponseBody: View 조회를 무시하고, HTTP message body에 직접 해당 내용 입력
@RequestParam의 name(value) 속성이 파라미터 이름으로 사용
- @RequestParam("username") String memberName
- → request.getParameter("username")
requestParamV3
HTTP 파라미터 이름이 변수 이름과 같으면 @RequestParam(name="xx") 생략 가능
requestParamV4
String, int, Integer등의 단순 타입이면 @RequestParam도 생략 가능
주의
@RequestParam 애노테이션을 생략하면 스프링 MVC는 내부에서 required=false를 적용한다.
required 옵션은 바로 다음에 설명한다.
참고
이렇게 애노테이션을 완전히 생략해도 되는데, 너무 없는 것도 약간 과하다는 주관적 생각이 있다.
@RequestParam이 있으면 명확하게 요청 파라미터에서 데이터를 읽는 다는 것을 알 수 있다.
파라미터 필수 여부 - requestParamRequired
- @RequestParam.required
- 파라미터 필수 여부
- 기본값이 파라미터 필수(true)이다.
- /request-param 요청
- username이 없으므로 400 예외가 발생한다.
주의! - 파라미터 이름만 사용
/request-param?username=
파라미터 이름만 있고 값이 없는 경우 → 빈문자로 통과
주의! - 기본형(primitive)에 null 입력
- /request-param 요청
- @RequestParam(required = false) int age
null을 int에 입력하는 것은 불가능(500 예외 발생)
따라서 null을 받을 수 있는 Integer로 변경하거나, 또는 다음에 나오는 defaultValue 사용
기본 값 적용 - requestParamDefault
파라미터에 값이 없는 경우 defaultValue를 사용하면 기본 값을 적용할 수 있다.
이미 기본 값이 있기 때문에 required는 의미가 없다.
defaultValue는 빈 문자의 경우에도 설정한 기본 값이 적용된다.
/request-param-default?username=
파라미터를 Map으로 조회하기 - requestParamMap
파라미터를 Map, MultiValueMap으로 조회할 수 있다.
- @RequestParam Map,
- Map(key=value)
- @RequestParam MultiValueMap
- MultiValueMap(key=[value1, value2, ...] ex) (key=userIds, value=[id1, id2])
파라미터의 값이 1개가 확실하다면 Map을 사용해도 되지만, 그렇지 않다면 MultiValueMap을 사용하자.
'Spring' 카테고리의 다른 글
스프링 MVC 1 - HTTP 요청 메시지 - 단순 텍스트 (0) | 2022.07.17 |
---|---|
스프링 MVC 1 - HTTP 요청 파라미터 - @ModelAttribute (0) | 2022.07.16 |
스프링 MVC 1 - HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form (0) | 2022.07.16 |
스프링 MVC 1 - HTTP 요청 - 기본, 헤더 조회 (0) | 2022.07.15 |
스프링 MVC 1 - 요청 매핑 - API 예시 (0) | 2022.07.15 |
댓글
이 글 공유하기
다른 글
-
스프링 MVC 1 - HTTP 요청 메시지 - 단순 텍스트
스프링 MVC 1 - HTTP 요청 메시지 - 단순 텍스트
2022.07.17 -
스프링 MVC 1 - HTTP 요청 파라미터 - @ModelAttribute
스프링 MVC 1 - HTTP 요청 파라미터 - @ModelAttribute
2022.07.16 -
스프링 MVC 1 - HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form
스프링 MVC 1 - HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form
2022.07.16 -
스프링 MVC 1 - HTTP 요청 - 기본, 헤더 조회
스프링 MVC 1 - HTTP 요청 - 기본, 헤더 조회
2022.07.15