728x90
728x90
# 관련 포스팅
- Validation 개념 : https://young0105.tistory.com/194
BindingResult 클래스
- @Valid에 대한 결과 값을 갖는 클래스
→ 직접 예외에 대한 클래스를 컨트롤할 수 있음 (POST 요청에서 자주 사용됨)
- 단독으로 매개변수에 들어가면 오류 발생
→ 반드시 유효성 검사 대상인 다른 매개변수 바로 뒤에 지정되어야 함
- Error에 대한 정보를 담는 DTO 클래스를 따로 만들어서 DTO 형식으로 에러 정보를 보낼 수도 있음
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 32 33 34 35 | @PostMapping("/user3") public ResponseEntity<?> user3(@Valid @RequestBody User user, BindingResult bindingResult) { // 에러가 있다면 if (bindingResult.hasErrors()) { // 응답 HTTP 메시지 body에 보낼 문자열 StringBuilder sb = new StringBuilder(); // 모든 에러를 담은 리스트 (스트림 연산 활용) // forEach()는 .stream()을 생략해도 정상 작동함 bindingResult.getAllErrors().forEach(error -> { // 에러가 발생한 필드 확인 System.out.println(error.getCode()); // 에러 발생 시 메세지 확인 System.out.println(error.getDefaultMessage()); // 에러가 발생한 객체명 확인 System.out.println(error.getObjectName()); sb.append("field : " + error.getCode()); // 에러가 발생한 필드 sb.append("\n"); sb.append("message : " + error.getDefaultMessage()); // 에러 시 메세지 sb.append("\n"); }); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(sb.toString()); } // 에러가 없다면 return ResponseEntity.ok(user); } } | cs |
320x100
반응형
'Java > Spring Boot' 카테고리의 다른 글
[Spring Boot] JSP 템플릿 엔진 연결하기 (0) | 2023.04.12 |
---|---|
[Spring Boot] 예외 처리 (exception) (0) | 2023.04.12 |
[Spring Boot] Validation (유효성 검사) (0) | 2023.04.11 |
[Spring Boot] AOP (관점 지향 프로그래밍) ★ (0) | 2023.04.11 |
[Spring Boot] ResponseEntity (0) | 2023.04.11 |