반응형
BindingResult 사용(2)
BindingResult가 있으면 @ModelAttribute에 데이터 바인딩 시 오류가 발생해도 컨트롤러가 호출된다. 이게 예를 들면 쉽게 이해가 가능하다.
예시로 만약 한 값을 받아오는데 int로 설정을 해뒀다. 근데 문자가 입력되었을 때 BingingResult를 사용하면 페이지 로딩이 되긴 한다. 하지만 BindingResult를 사용하지 않고 int로 받는 값에 문자를 넣는다면 페이지 자체가 로딩되지 않고 오류 페이지가 뜨게된다.
즉, BindingResult가 없으면 400오류 발생과 동시에 컨트롤러가 호출되지 않고 오류 페이지로 이동되고 BindingResult가 있다면 오류 정보(FieldError)를 BindingResult에 담아서 컨트롤러를 정상 호출하게 된다.
이번 강의에서는 BindingResult와 Errors에 관해서도 알려주었다.
org.springframework.validation.Errors
org.springframework.validation.BindingResult
BindingResult는 인터페이스고 Errors 인터페이스를 상속 받고 있다. 때문에 Errors를 사용해도 되지만 Errors 인터페이스는 단순한 오류 저장과 조회 기능만 제공하기 때문에 기능이 부족하다. 그래서 그냥 BindingResult를 사용한다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 오류 코드와 메시지 처리(1) (0) | 2022.02.11 |
---|---|
[Spring Boot] : FieldError과 ObjectError에 대해서 (0) | 2022.02.10 |
[Spring Boot] : BindingResult 사용(1) (0) | 2022.02.10 |
[Spring Boot] : 타임리프를 통한 검증 코드 추가하기 (0) | 2022.02.10 |
[Spring Boot] : 타임리프 Message 국제화 (0) | 2022.02.09 |
댓글