@RequestParam
쿼리 파라미터를 포함한 url 요청이 있을 때 사용
파라미터 이름으로 바인딩한다.
기본 사용 방법
@GetMapping("/member")
public String getTest2(@RequestParam String name) {
return "Hello. " + name + "!!!";
}
요청 : http://localhost:9090/api/server/member?name=test
응답 : Hello. test!!!
required 옵션 사용 방법
required = true 일 경우 필수 값이며, false일 경우 필수값이 아니다.
defaultValue로 쿼리 파라미터가 없을 때 사용할 디폴트 값을 설정할 수 있다.
@GetMapping("/member")
public String getTest2(
@RequestParam(value = "userId", required = true) String id,
@RequestParam(value = "memberNumber", required = false, defaultValue = "1") int number) {
return "your ID : " + id + ", your number is " + number;
}
요청 : http://localhost:9090/api/server/member?userId=testID
응답 : your ID : testID, your number is 1
요청 : http://localhost:9090/api/server/member?userId=testID&memberNumber=20
응답 : your ID : testID, your number is 20
required 옵션 사용할 때, 파라미터 이름과 값의 유무에 따라 결과가 다르다.
@RequestParam의 required의 디폴트 값이 true이다.
required = true의 경우
@GetMapping("/member")
public String getTest2(
@RequestParam(value = "memberName") String name,
@RequestParam(value = "memberAge") int age) {
return "your name : " + name + ", your age : " + age;
}
• 참조형 타입
▶ 파라미터 이름은 있지만 값이 없을 경우
요청 : http://localhost:9090/api/server/member?memberName=&memberAge=20
응답 : your name : , your age : 20
▶ 파라미터 이름이 없을 경우
요청 : http://localhost:9090/api/server/member?memberAge=20
응답 : 400 에러
• 기본형 타입
▶ 파라미터 이름은 있지만 값이 없을 경우
요청 : http://localhost:9090/api/server/member?memberName=name&memberAge=
응답 : 400 에러
▶ 파라미터 이름이 없을 경우
요청 : http://localhost:9090/api/server/member?memberName=name
응답 : 400 에러
required = false의 경우
@GetMapping("/member")
public String getTest2(
@RequestParam(value = "memberName", required = false) String name,
@RequestParam(value = "memberAge", required = false) int age) {
return "your name : " + name + ", your age : " + age;
}
• 참조형 타입
▶ 파라미터 이름은 있지만 값이 없을 경우
요청 : http://localhost:9090/api/server/member?memberName=&memberAge=20
응답 : your name : , your age : 20
▶ 파라미터 이름이 없을 경우
요청 : http://localhost:9090/api/server/member?memberAge=20
응답 : your name : null, your age : 20
• 기본형 타입
▶ 파라미터 이름은 있지만 값이 없을 경우
요청 : http://localhost:9090/api/server/member?memberName=name&memberAge=
응답 : 400 에러
▶ 파라미터 이름이 없을 경우
요청 : http://localhost:9090/api/server/member?memberName=name
응답 : 500 에러