이제 밸리데이션 체크 관련해서 추가해줄건다
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
복사