@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 -> 값이 들어오지 않아도 기본값으로 컨트롤러가 동작하게 하는 명확한 코드입니다.
'Spring > Spring 문법' 카테고리의 다른 글
Spring Security 적용 (0) | 2024.11.14 |
---|---|
QueryDSL이란 무엇일까?? (0) | 2024.11.14 |
Java Spring properties (1) | 2024.10.26 |
Spring boot 에서 이메일 인증 구현하기 (googleEmail) - Bean 만들어서 주입하기 (0) | 2024.10.24 |
Spring boot 에서 이메일 인증 구현하기 (googleEmail) - JavaMailSender 자동 주입 (2) | 2024.10.24 |