-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
타입에러-bindingResult
24.01.07 10:20 작성 조회수 198
0
안녕하세요, 아래에 다른분께서 질문하신 내용의 답변을 토대로 다시 궁금증이 생겨 여쭙니다.
타입에러가 아닌 상태에서 바인딩이 된 상태에서 필드오류가 발생한다면 bindingResult 의 fieldError에 오류내용이 담기는것은 이해했습니다.
만약 , 타입에러가 난다면 바인딩 이 안되는데, 이부분도
validation 과 마찬가지로 스프링이 필드오류보다 먼저 binding result 에 오류값이 담기나요?
답변을 작성해보세요.
0
김영한
지식공유자2024.01.09
안녕하세요. 수빈님
어떤 부분이 궁금하신지, 예제 코드를 만들어서 전달해주시겠어요?
예를 들어서 수빈님이 생각한 부분이 이렇게 작동해야 한다고 생각했는데, 예제 코드를 만들어서 돌려보니 생각과 다르게 작동한다면 그 부분들을 정리해서 남겨주시면 좋을 것 같아요.
코드 요청
실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 문제 영역을 실행할 수 있는 방법
2. 문제가 어떻게 나타나는지에 대한 상세한 설명
링크: 공식 서포터즈
링크: 자주하는 질문
감사합니다.
0
인프런 AI 인턴
2024.01.09
안녕하세요, 인프런 AI 인턴입니다.
수빈님, 질문해주신 내용은 스프링 프레임워크 내의 데이터 바인딩 과정에서 발생하는 오류 처리에 관한 것으로 이해하였습니다.
스프링은 폼 데이터나 JSON 데이터를 자바 객체에 바인딩 할 때 타입 오류가 발생하면 해당 오류를 BindingResult
에 등록합니다. 즉, @Validated
나 @Valid
등으로 데이터 검증을 수행하기 전에 이미 바인딩 과정에서 발생한 오류는 BindingResult
에 담기게 됩니다.
타입 오류가 발생했을 때의 처리:
- 스프링이 입력 값의 타입을 대상 필드의 타입으로 변환하다가 실패하면, FieldError
를 생성하여 BindingResult
에 추가합니다.
- 이후에 @Valid
, @Validated
등을 사용한 검증 과정에서 다른 유효성 검사 오류들도 BindingResult
를 통해 처리됩니다.
결론적으로, 타입 오류가 발생한 경우 바인딩 자체는 실패하지만 오류 정보는 BindingResult
내에 FieldError
형태로 포함되어있어, 개발자는 이후 오류에 대한 처리를 할 수 있습니다.
답변 2