Spring/Spring 문법
@RequestParam 에서 매개 변수에 null 넣기
열심히 해
2024. 11. 14. 13:23
@GetMapping("/todos")
public ResponseEntity<Page<TodoResponse>> getTodos(
@RequestParam(defaultValue = "1") int page,
@RequestParam(defaultValue = "10") int size,
@RequestParam(defaultValue = "null") String weather,
@RequestParam(defaultValue = "null") Integer startOfPeriod,
@RequestParam(defaultValue = "null") Integer endOfPeriod
) {
// ...
}
위처럼 defaultValue = "null" 를 쓴다면 임시로 넣은 null 인지, 필수값이 아니라서 넣은 null 인지 명확하지 않습니다.
@GetMapping("/todos")
public ResponseEntity<Page<TodoResponse>> getTodos(
@RequestParam(defaultValue = "1") int page,
@RequestParam(defaultValue = "10") int size,
@RequestParam(required = false) String weather,
@RequestParam(required = false) Integer startOfPeriod,
@RequestParam(required = false) Integer endOfPeriod
) {
// ...
}
이럴 때는 required = false 옵션을 줘서 파라미터가 없을 경우 null 로 처리되게 하는 것이 더 가독성이 좋습니다.
필수값이 아니라는 걸 명확하게 보여주는 코드입니다.
필수값이 아니기 때문에, 사용자의 입력이 없을 경우 null 이 들어갑니다.
Integer 의 기본값은 상수로서 null 입니다.
required = false -> 값이 들어오지 않아도 기본값으로 컨트롤러가 동작하게 하는 명확한 코드입니다.