Spring
[SpringMVC] 업무에서 활용한 @RequestParam 사용법 정리
U_ma
2023. 3. 30. 01:18
@RequestParam 기본 설명
- 예시 설명
@RequestParam에서 같은 파라미터를 한 번에 보내는 방법
- 하나의 쿼리 파라미터를 통해 보내기
- 동일한 쿼리 파라미터 이름을 통해 보내기
enum을 통해 받아오는 파라미터 값 제한하기
- enum값 설정
@RequestParam 기본 설명
💡 @RequestParam 어노테이션은 HTTP 요청 파라미터를 받아오는 어노테이션이다. URL의 파라미터를 추출해 메서드 인자로 받는다.
- https://yuma1029.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F#
예시 설명
@GetMapping
public ResponseEntity<ProductResponseDto.NewProduct> getProducts(@RequestParam(name = "product-status", required = false) ProductStatus productStatus) {
//...코드 생략
}
@RequestParam(value = "name", required = false)
파라미터에 대한 요구 사항 설정 가능. value
는 URL에 지정된 파라미터의 이름으로 지정할 수 있고, required
를 통해서 파라미터의 필수 여부를 체크할 수 있다.
@RequestParam에서 같은 파라미터를 한 번에 보내는 방법
💡 @RequestParam을 활용해 똑같은 파라미터 이름을 가진 값을 여러 개를 보내주고 싶을 때 사용했던 두 가지 방법을 소개한다.
하나의 쿼리 파라미터를 통해 보내기
💡 쿼리 파라미터를 `,` 를 구분자로 해 사용한다.
@GetMapping("/boards")
public String testParam(@RequestParam("ids") List<Long> ids) {
//...
}
GET https://localhost/boards?ids=1,2,3,4,5
동일한 쿼리 파라미터의 이름을 통해 보내기
💡 동일한 파라미터 명을 통해서 여러 중복값을 받아올 수 있다.
@GetMapping("/boards")
public String testParam(@RequestParam("id") List<Long> ids) {
//...
}
GET https://localhost/boards?id=1&id=2&id=3&id=4&id=5
enum을 통해 받아오는 파라미터 값 제한하기
💡 @RequestParam 변수의 타입을 enum으로 설정해 파라미터가 받아오는 값을 제한할 수 있고 활용할 수 있다.
enum값 설정
@Slf4j
@Getter
@AllArgsConstructor
public enum ProductStatus {
DUTYFREE(0), DELIVERY(1);
//enum을 활용할 수 있는 필드, 메서드 작성
}
@GetMapping("/new-product")
public ResponseEntity<ProductResponseDto.NewProduct> getNewProducts(@RequestParam(name = "product-status", required = false) ProductStatus productStatus) {
//... 생략
}
@RequestParam의 product-status 파라미터가 받아올 수 있는 값을 DUTYFREE, DELIVERY 두 개로 제한할 수 있다.