인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

soojinkimss님의 프로필 이미지
soojinkimss

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 웹 기능 - 등록

createMemberForm.html안에 <input name="name>태그가 setName과 동일한가

작성

·

84

·

수정됨

0

[질문 내용]

createMemberForm.html안에 <input>태그에 name="name"을 HTML 화면 상에 "spring"이라고 등록하면 MemberForm 컨트롤러에서 개체인 name으로 들어오게 된다는 것을 이해 했는데요. 그렇다면 name="name"이 form.setName한거라고 봐도 무방한가요?

답변 2

0

안녕하세요. soojinkimss님, 공식 서포터즈 코즈위버입니다.

네 맞습니다. INPUT 엘리먼트의 각 속성, name="{이름}" value="{값}" 이 DTO와 매핑될 때 setter 를 이용하게 됩니다.

 

form.set이름(값); 코드가 실행된다고 생각하시면 됩니다.

 

감사합니다.

0

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

질문 주신 내용은 스프링 MVC에서 HTTP 요청 데이터를 자바 객체로 바인딩하는 방법에 대한 것입니다. \<input name="name"\> 태그의 값이 MemberForm 객체의 속성으로 자동 매핑되는 과정은 스프링의 데이터 바인딩을 통해 이루어집니다.

간단히 설명드리자면, HTML 폼의 입력 필드의 name 속성과 자바 객체의 필드 이름을 동일하게 설정하면, 스프링이 자동으로 폼 데이터를 해당 객체의 필드에 바인딩해 주게 됩니다. 이는 스프링이 폼을 처리하는 과정에서 내부적으로 setName 메서드를 호출하여 입력값을 객체의 필드에 설정하는 방식으로 작동합니다.

따라서, <input name="name"> 부분은 form.setName() 영향을 받는다고 이해하셔도 됩니다. 다만, 이는 스프링의 ModelAttribute와 같은 기능을 통해 자동으로 처리되는 것이기 때문에, 사용자가 명시적으로 setName을 호출하지 않아도 동일한 바인딩 효과를 얻을 수 있는 것입니다.

관련하여 추가적인 설명이 필요한 경우, 아래의 유사한 질문들을 참고하시면 도움이 될 것입니다:

  1. SetName 질문입니다.
  2. input type name = name이 MemberForm에 String name 객체에 왜 주입되는지 모르겠습니다.

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

soojinkimss님의 프로필 이미지
soojinkimss

작성한 질문수

질문하기