Spring boot kim's Shop/회원가입

Springboot Jwt+회원가입 하기!(2) with RestControllerAdvice/ExceptionHandler

디비드킴 2021. 7. 27. 15:31

이제 유효성 검사 

실패 시 메시지를 프런트에게 

던져줘 보자

 

좀찾아보니

@valid도 익셉션도 핸들러로

해주면 되는거 같다

 

이전에도 예외는 한번 했었다

https://cordingmonster.tistory.com/64?category=1031826 

 

Springboot 롤백! with @Transactional(rollbackFor = {Exception.class}) with save

고민이 있었다 게시글을 쓰는데 게시글은 넣고 사진을 등록하다가 에러가 터지면 전부 롤백을 해줘야 하는데 방법을 몰랐다 얼추 @Transactional을 가지고 한다고 들었는데 그래서 찾아봤다 https://d

cordingmonster.tistory.com

 

errorRestController

errorRestController.java

레스트 컨트롤러 전역 예외를 잡는다

@RestControllerAdvice

해당되는 예외를 가져온다

MethodArgumentNotValidException exception

(다른 예외를 사용 해서 가져오시는분들도 있는거 같다!)

 

리턴 형식이

BindingResult이다

BindingResult bindingResult = exception.getBindingResult();

 

프런트 전송을  위해 빌더를 하나 만들고

StringBuilder builder = new StringBuilder();

 

에러 개수만큼 빌더와 배열에

메시지/파트를 담아서

 for (FieldError fieldError : bindingResult.getFieldErrors()) {

            builder.append(fieldError.getDefaultMessage());

            list.add(fieldError.getField());

}

json으로 주자

 

 

utillService

utillService.java

 

오버 로딩 기능을 활용해

존재하는 함수지만 만들 수 있다

(편리하다)

 

테스트

http://localhost:3030/kim_s_Shop/sinupPage.jsp

잘 온다

postman

이제 이걸 가지고 프런트에서

예를 들어 

리스폰스 errorPart가 널이아니라면

하나씩 꺼내서 해당하는 dom에

메시지를 표시해주면 될 거 같다 

 

아니면 지금 메세지를 한꺼번에

던저주는데 json으로 메세지를 나눠서

key=fieldError.getField()

value=fieldError.getDefaultMessage()

이런식으로 던저주면 

훨씬 수월 하지 않을까 싶다

 

이따가 다시 만들어야겠다!

간단한 유효성 검사 끝~

 

이제 로그인 만들러 가자!