강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

eovnfjfpa님의 프로필 이미지
eovnfjfpa

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

체크 박스 - 멀티

질문있습니다.

작성

·

23

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
HTML 코드나 다른 코드에서도 Item 클래스 내부에 있는 regions 에 값을 따로 넣어주는게 없는데 체크박스 체크를 한 상태로 전송하게 되면 list에 값이 들어가는데 이게 어떤 로직을 통해 값이 채워지는지 궁금합니다

답변 1

0

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

질문하신 내용에 대해 설명드리겠습니다. Spring MVC에서는 폼을 처리할 때 주로 @ModelAttribute를 사용하여 뷰로부터 데이터를 컨트롤러 단으로 바인딩하게 됩니다. 이때 HTML 폼에 체크박스가 포함되어 있다면, 제출 시 리스트와 같은 컬렉션 필드에 선택된 값들이 자동으로 채워집니다. Spring은 view에서 전달된 form 데이터를 기반으로 객체의 필드에 값을 매핑하는 역할을 하며, 이에 따라 regions 리스트에 값이 채워집니다.

여기서는 주요 로직이 HTML 체크박스를 통한 사용자 입력 값이 컨트롤러로 전달될 때, Spring MVC의 데이터 바인딩 메커니즘이 이를 처리하여 @ModelAttribute 객체에 값을 채워 넣는 방식이라는 점을 알 수 있습니다. 체크박스가 배열이나 리스트 형식으로 전송되면, Spring은 해당 데이터를 컨트롤러의 모델 속성에 맞게 자동으로 바인딩합니다.

예를 들어, HTML에서 체크박스가 <input type="checkbox" name="regions" value="US"> 형식으로 정의되어 있을 때, 사용자가 체크를 하고 폼을 제출하면 해당 값은 자동으로 regions 리스트에 추가됩니다.

추가적으로 참고할 만한 링크는 다음과 같습니다:
- BindingResult와 @ModelAttribute의 작동 방식에 대한 설명

이 링크에서는 @ModelAttribute가 어떻게 BindingResult와 함께 작동되어 HTML의 입력 데이터가 Java 객체로 자동 변환되는지 설명하고 있으며, 이는 여전히 유용한 관련 정보를 제공합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

eovnfjfpa님의 프로필 이미지
eovnfjfpa

작성한 질문수

질문하기