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)로 반환된다.
'✨ Back-end > etc' 카테고리의 다른 글
[Spring] 검증(Validation) -1 타임리프(thymeleaf) (0) | 2023.09.19 |
---|---|
[Spring] SqlSessionTemplate 대신 Mapper 인터페이스 사용 (0) | 2023.09.18 |
[Spring] SessionAttribute (0) | 2023.09.14 |
[Spring] 구글 차트 DB에 넣어 Ajax로 시각화하기 (2) | 2023.09.14 |
[Spring] thymleaf에서 제공하는 th:object 와 th:field (0) | 2023.09.13 |
댓글