Search

78. 스프링부트 포토그램 댓글 구현하기 유효성 검사하기

이제 밸리데이션 체크 관련해서 추가해줄건다
content 나 imageId가 안들어오면 안된다
CommentDto.java에 @NotBlank 추가
// @NotNull null값 체크 // @NotEmpty 빈값이거나 null 체크 // @NotBlank 빈값이거나 null 체크 그리고 빈 공백(스페이스)까지 @Data public class CommentDto { @NotBlank private String content; @NotNull private int imageId; }
Java
복사
CommentApiController.java 에 commentSave함수에
@Valid 추가
BindingResult 추가
UserApiController의 update함수 부분 참고해서
@PostMapping("/api/comment") public ResponseEntity<?> commentSave(@Valid @RequestBody CommentDto commentDto, BindingResult bindingResult, @AuthenticationPrincipal PrincipalDetails principalDetails){ //에러가 존재한다면 if(bindingResult.hasErrors()) { Map<String, String> errorMap = new HashMap<>(); for(FieldError error :bindingResult.getFieldErrors()) { errorMap.put(error.getField(), error.getDefaultMessage()); System.out.println("=============================="); System.out.println(error.getDefaultMessage()); System.out.println("=============================="); } throw new CustomValidationApiException("유효성 검사 실패함", errorMap); }else { Comment comment = commentService.댓글쓰기(commentDto.getContent(), commentDto.getImageId(), principalDetails.getUser().getId()); //content, imageId, userId return new ResponseEntity<>(new CMRespDto<>(1, "댓글쓰기성공", comment), HttpStatus.CREATED); } }
Java
복사
오류를 내볼건데 story.js에서
if (data.content === "") { alert("댓글을 작성해주세요!"); return; }
Java
복사
이 부분을 잠깐 테스트때만 주석 처리 해준다
그냥 댓글에 아무것도 안쓰고 게시버튼 누르면
이렇게 오류가 난다
story.js 댓글쓰기 부분의 ajax 실패에
}).fail(error=>{ console.log("오류", error.responseJSON.data.content); alert(error.responseJSON.data.content); });
JavaScript
복사

*참고