Today/Study

23/11/15

shulk 2023. 11. 15. 17:32

이제 숙련과제에서 회원 가입 부분을 구현을 해보려 하는데 데이터 검증하고,예외처리부분을 알아야한다.

Validation 검증 

1) 유효성 검사를 위해 DTO의 적용 하고 싶은 필드에 사용 하고 싶은 어노테이션 하면 된다.

예시 코드를 보면

* username 4~10자까지만 허용

* username을 a~z 랑 0~9 만 허용

* 만약 클라가 3자 or 13자 보냈을경우 서버에서 massage에 적힌 메세지 보낸다.

@Size(min=4, max=10 , message ="4자 이상 10자 이하이어야 합니다")
@Pattern(regexp ="^[a-z0-9]$")
private String username;

 

 

 

Validation 예외처리

1) 유효성 검사를 하는데 오류 있을시 예외 처리를 하는 방법은 컨트롤러의 DTO 앞에 @Vaild 해준다.

2) BindingResult는 예외가 발생하면 객체에 오류에 대한 정보가 담긴다.

3) hasErrors() 메소드는 BindingResult 객체에서 발생한 오류가 있는지 여부를 확인하는거다. (반환 타입보면 boolean)

4)  BindingResult 의 메소드 getFieldErrors() vs getAllErrors()

getFieldErrors는 필드에 대한 오류만 반환하고 getAllErrors는 필드뿐 아니고  DTO에 대한 모든 오류를 반환한다!