본문 바로가기
카테고리 없음

[Spring] @RequestParam

by diaryDev 2024. 9. 25.
728x90

@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 에러

728x90