티스토리 뷰
▶️ 해당 reqeust 파일이 있다고 해보자.
내가 만약 [ tripName ]을 입력하지 않았다면, 사용자에게 해당 [ message ]를 출력하고 싶다.
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TripRequest {
@NotNull(message = "여행 이름을 입력하세요.")
private String tripName;
@NotNull(message = "출발 날짜를 입력하세요.")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate startDate;
@NotNull(message = "도착 날짜를 입력하세요.")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate endDate;
@NotNull(message = "국내 여행 여부를 입력하세요.")
private Boolean isDomestic;
}
▶️ @Valid 를 통한 예외는 [ MethodArgumentNotValidException ] 이다.
# step 1 일단 예외 처리 핸들러를 작성하자.
@ExceptionHandler(value = {MethodArgumentNotValidException.class})
public ResponseEntity<ErrorResponseDTO> handleArgumentNotVaildException(
MethodArgumentNotValidException e, HttpServletRequest request
) {
return new ResponseEntity<>(
ErrorResponseDTO.error(e),
HttpStatus.BAD_REQUEST
);
}
# step 2 ErrorResponseDTO.error() 메소드 작성
public static ErrorResponseDTO error(MethodArgumentNotValidException e) {
return new ErrorResponseDTO(
BAD_REQUEST.getStatus(), BAD_REQUEST.getCode(), e.getMessage()
);
}
# step 3 TEST
뭐지?
일단 구글링
# step 4.
이 예외에서 에러들을 뽑아내어, dafaultMessage인것만 뽑아내어 묶으면 된다.
List인 이유 -> 예외가 여러개일수도 있어서.
public static ErrorResponseDTO error(MethodArgumentNotValidException e) {
List<String> msgList = e.getAllErrors().stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.toList());
return new ErrorResponseDTO(
BAD_REQUEST.getStatus(), BAD_REQUEST.getCode(), String.join(",", msgList)
);
}
🌟 결과
'Spring boot' 카테고리의 다른 글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 국비지원
- be
- 프로젝트후기
- 패스트캠퍼스
- 국비지원캠프
- 그룹스터디워크샵
- Java
- 자료구조
- 야놀자
- 백엔드
- 백엔드개발자
- 스터디후기
- 야놀자X패스트캠퍼스부트캠프
- 국비지원취업
- 커리어멘토링
- 부트캠프
- 과정중간회고
- 데이터베이스
- #국비지원취업
- qjzl
- springboot
- 자료구조 #스택 #큐 #덱 #선형자료구조
- 패스트캠퍼스강의
- 백엔드부트캠프
- boj
- 그룹스터디
- 백준
- 카카오API
- TiL
- 채팅기능개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함