Bepoz
파즈의 공부 일기
Bepoz
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • 공부 기록들 (85)
      • 우테코 (17)
    • Spring (85)
    • Java (43)
    • Infra (17)
    • 책 정리 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Bepoz

파즈의 공부 일기

[Spring] @Valid 를 이용한 Exception처리와 ThymeLeaf 처리
Spring

[Spring] @Valid 를 이용한 Exception처리와 ThymeLeaf 처리

2020. 9. 15. 23:27

다음과 같이 도메인 위에 어노테이션을 이용해서 조건을 걸 수가 있다. (@Past는 과거 날짜만 들어오게끔한 어노테이션)

 

import javax.validation.constraints. ~~ 를 import 하는데 만약 오류가 뜬다면

 

implementation 'org.springframework.boot:spring-boot-starter-validation'

위의 의존성을 추가하자(gradle 프로젝트 기준이고, maven 은 알아서 dependency 설정으로 추가해주면 될 것이다.)

 

Valid로 검사해주려는 값 앞에 @Valid를 붙인다. 일단 exception 처리를 해주려고 하기 때문에

파라미터 값으로 BindingResult를 넣으면 오류가 난다.

@ControllerAdvice를 이용해서 모든 컨트롤러의 익셉션을 처리해주기 위한 클래스이다.

ResponseEntityExceptionHandler 의 handleMethodArgumentValid 메서드를 오버라이딩 해주었다.

ExceptionResponse의 형태로 받아주었다. "validation failed" 칸 안에 ex.getMessage()를 넣어도 되는데 ex.getBindingResult() 값과 유사해서 "validation failed" 로 간략하였다.

그 결과 다음과 같이 나왔다.

default message 부분을 수정할 수도 있다.

다음과 같이 message 값을 설정하면 된다.

이 error 값들을 html 에 출력을 해보자.

위의 코드는 회원가입 화면에서 입력을 한 후에 회원가입 버튼을 눌렀을 때에 post로 받아온 상황이다.

Valid 에 걸려서 BindingResult result 변수안에 에러가 들어가게되면 

 

"user/user_register" 로 다시 회원가입 페이지를 return 해주었는데,

thymeleaf 기반의 register.html 이다.

해당 field 들이 hasErrors 한다면 그에 맞는 errors 를 출력하는 코드이다.

 

이로써, Valid 를 통해 exception 처리와 thymeleaf를 이용한 html 처리를 할 수 있다.

'Spring' 카테고리의 다른 글

[Spring] ResponseEntity에 대해서  (0) 2020.09.18
[Spring] @JsonFilter 를 이용한 필드값 필터링하기  (0) 2020.09.16
[Spring] @ControllerAdvice를 이용한 Exception custom 처리하기  (0) 2020.09.15
[Spring] @ResponseStatus 를 이용해 예외 상태 변경하기  (0) 2020.09.15
[Spring] PathVariable 사용법  (0) 2020.09.15
    'Spring' 카테고리의 다른 글
    • [Spring] ResponseEntity에 대해서
    • [Spring] @JsonFilter 를 이용한 필드값 필터링하기
    • [Spring] @ControllerAdvice를 이용한 Exception custom 처리하기
    • [Spring] @ResponseStatus 를 이용해 예외 상태 변경하기
    Bepoz
    Bepoz
    https://github.com/Be-poz/TIL

    티스토리툴바