• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

타입에러-bindingResult

24.01.07 10:20 작성 조회수 198

0

안녕하세요, 아래에 다른분께서 질문하신 내용의 답변을 토대로 다시 궁금증이 생겨 여쭙니다.

 

타입에러가 아닌 상태에서 바인딩이 된 상태에서 필드오류가 발생한다면 bindingResult 의 fieldError에 오류내용이 담기는것은 이해했습니다.

만약 , 타입에러가 난다면 바인딩 이 안되는데, 이부분도

validation 과 마찬가지로 스프링이 필드오류보다 먼저 binding result 에 오류값이 담기나요?

답변 2

·

답변을 작성해보세요.

0

안녕하세요. 수빈님

어떤 부분이 궁금하신지, 예제 코드를 만들어서 전달해주시겠어요?

예를 들어서 수빈님이 생각한 부분이 이렇게 작동해야 한다고 생각했는데, 예제 코드를 만들어서 돌려보니 생각과 다르게 작동한다면 그 부분들을 정리해서 남겨주시면 좋을 것 같아요.

 

코드 요청

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.09

안녕하세요, 인프런 AI 인턴입니다.

수빈님, 질문해주신 내용은 스프링 프레임워크 내의 데이터 바인딩 과정에서 발생하는 오류 처리에 관한 것으로 이해하였습니다.

스프링은 폼 데이터나 JSON 데이터를 자바 객체에 바인딩 할 때 타입 오류가 발생하면 해당 오류를 BindingResult에 등록합니다. 즉, @Validated@Valid 등으로 데이터 검증을 수행하기 전에 이미 바인딩 과정에서 발생한 오류는 BindingResult에 담기게 됩니다.

타입 오류가 발생했을 때의 처리:
- 스프링이 입력 값의 타입을 대상 필드의 타입으로 변환하다가 실패하면, FieldError를 생성하여 BindingResult에 추가합니다.
- 이후에 @Valid, @Validated 등을 사용한 검증 과정에서 다른 유효성 검사 오류들도 BindingResult를 통해 처리됩니다.

결론적으로, 타입 오류가 발생한 경우 바인딩 자체는 실패하지만 오류 정보는 BindingResult 내에 FieldError 형태로 포함되어있어, 개발자는 이후 오류에 대한 처리를 할 수 있습니다.