본문 바로가기
✨ Back-end/etc

[Spring-Legacy] validate 유효성 검사

by 환풍 2023. 9. 14.
728x90

 

 

 

jsp

jsp에서 input 태그의 name과 age, 그리고 js에서 여기에 데이터를 입력 후 serialize를 통해 ajax로 넘긴다.

 

VO와 컨트롤러

ValidateModel이라는 객체를 만들어, input 데이터를 받아주기 위해 name과 age를 만들었고,

컨트롤러 ajax에서 modelAttribute로 받아 콘솔에 찍어볼 것이다.

 

데이터를 찍어보니 잘 나온다.

 

ValidaterTest

왼쪽은 클래스 만들고 구현만, 오른쪽은 점점 뼈대 생성

ValidaterTest 클래스를 만들어, Validator를 구현시켜준다. 그리고 오버라이드를 시켜주고, 오른쪽과 같이 return을 수정한다. 이렇게 지정해야 해당 모델을 검사해준다.

 

ValidaterTest

문자를 계산하는 StringUtils는 org.springframework.utl을 사용해준다. 그리고 오른쪽과 같이 코드를 작성한다.

 

컨트롤러

@InitBinder:

@InitBinder은 요청 매핑 메서드(여기서는 validateProcess) 실행 전에 실행되는 메서드를 정의할 때 사용된다.

init 메서드는 WebDataBinder 객체를 초기화하고 설정하는 데 사용된다.

webDataBinder.addValidators(validaterTest);

: addValidators 메서드를 사용하여 webDataBinder에 유효성 검사기를 추가한다.

이렇게 하면 validateModel 객체에 대한 데이터 바인딩 및 유효성 검사가 수행된다.

BindingResult bindingResult

: 유효성 검증 결과를 저장할 BindingResult 객체이다.

validaterTest.validate(validateModel, bindingResult);

: validaterTest를 사용하여 validateModel 객체의 유효성 검사를 수행하고, 그 결과를 bindingResult에 저장한다.

if(bindingResult.hasErrors())

: bindingResult에 유효성 검증 오류가 있다면 오류 정보를 JSON 형식으로 반환한다.

이 경우, 유효성 검증 오류 정보는 필드 오류(Field Errors)로 반환된다.

반응형

댓글