새소식

Spring(+Boot)

Get방식에서 QueryParameter를 받는 방법

  • -

URL 형태 : ~/api/query-paramX?name=&age=&email=

 

1. 명시적으로 받아주기

@GetMapping("/query-param1")
public String getQueryParam1(@RequestParam String name, @RequestParam int age, @RequestParam String email){
return name+", "+age+", "+email;
}

 

2. Map을 사용해서 받아주기

@GetMapping("/query-param2")
public String getQueryParam2(@RequestParam Map<String, Object> requestParam){
StringBuilder sb = new StringBuilder();
requestParam.forEach((K,V)->{
sb.append(K+":"+V).append("\n");
});
return sb.toString();
}

 

3. DTO나 VO클래스를 사용해 받아주기

@GetMapping("/query-param3")
public String getQueryParam3(User user){
return user.toString();
}

 

만약 위 방법을 한꺼번에 쓰면 파라미터 매핑이 잘 될까 테스트해봤음

@GetMapping("/query-param4")
public String getQueryParam4(User user,
@RequestParam Map<String, Object> requestParam,
@RequestParam String name,
@RequestParam int age,
@RequestParam String email){
System.out.println(user.toString());
System.out.println("-------------------------");
StringBuilder sb = new StringBuilder();
requestParam.forEach((K,V)->{
sb.append(K+":"+V).append("\n");
});
System.out.println(sb.toString());
System.out.println("-------------------------");
System.out.println(name+", "+age+", "+email);
return ":D";
}

결과

 

잘 나오는 걸로 봐서는 1회 매핑되고 사라지는 것이 아닌 매핑될 수 있는 모든 변수에 매핑되는 것으로 보인다

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.