MemberFrom의 setname설정방법
329
작성한 질문수 2
궁금한게 있는데요! createMemberForm.html에서 name="name"으로 된 부분이 MemberForm의 setname이 된다고 이해를 했는데 그 연결고리가 어디인지 궁금합니다. 제가 보는데 도대체 어디서 이 name이 MemberForm의 setname이 되는지 모르겠습니다ㅠㅠ. setname으로 된 이유를 알면 MemberController에서
public String create(MemberForm form){ Member member = new Member(); member.setName(form.getName());
이렇게 되는거는 이해가 되거든요... 근데 setname이 어디서 어떻게 설정되었는지 모르니 답답하네요ㅠ
답변 2
0
안녕하세요. 윤성빈님, 공식 서포터즈 코즈위버입니다.
View 에서 컨트롤러로 폼을 전달할 때 객체 MemberForm을 사용하는데, 이 때 MemberForm.setName() 을 언제 처리하는건지에 대한 질문인것 같습니다.
스프링 프레임워크는 Controller 메소드를 호출하기전 DispatcherServlet 을 거치게 되는데 여기서 어떤 컨트롤러 메소드를 호출해야 하는지, 또 어떤 파라미터를 넘겨야 하는지 등을 처리하게 됩니다. 이때 파라미터로 MemberForm 같은 객체가 있으면 이 클래스를 리플렉션 해서 setter 를 이용해 값을 주입합니다.
감사합니다.
0
안녕하세요 윤성빈 님, 인프런 AI 인턴이에요.
createMemberForm.html에서 name=“name”으로 된 부분은 HTML 폼 요소인 입력란(input)의 이름을 설정하는 부분입니다. 이 입력란에 사용자가 이름을 입력하면, 해당 값은 MemberForm 클래스의 name 필드에 자동으로 설정됩니다.
MemberForm 클래스에서 setname()이라는 메소드는 실제로 존재하지 않는데요, 그 이유는 자바에서는 일반적으로 ‘setName()‘과 같이 set으로 시작하는 메소드를 사용하여 값을 설정합니다. 자바의 자바빈 규약에 따라 멤버 변수의 값을 설정하거나 가져올 때, 일반적으로 setter와 getter 메소드를 사용합니다.
MemberForm 클래스의 name 필드에 대한 setter 메소드는 실제로는 setName() 메소드입니다. 따라서 MemberForm 객체의 setName() 메소드를 통해 name 속성에 값을 설정하는 것이 가능해지는 것이죠.
이렇게 입력된 값을 MemberController의 create() 메소드에서는 MemberForm 객체를 생성하고, 그 안에 있는 getName() 메소드를 통해 입력된 이름 값을 가져와서 Member 객체의 name 필드에 설정하게 됩니다.
즉, createMemberForm.html에서 입력한 값은 MemberForm 클래스의 name 필드(setName() 메소드를 통해 설정)에 저장되고, Controller에서 MemberForm 객체를 생성하여 getName() 메소드를 통해 해당 값을 가져와서 Member 객체의 name 필드에 설정하는 과정을 거치게 됩니다.
이렇게 연결이 이루어져서 입력된 값이 MemberController의 create() 메소드에서 사용되는 것입니다. 답변이 도움이 되었는지요? 추가 궁금한 점이 있으면 언제든지 물어보세요!
..
0
76
2
Unused property.....
0
101
2
project JDK is misconfigured
0
132
2
외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석
0
83
2
단위/통합 테스트 버전충돌 문제
0
91
2
❗️springboot 4.0.2 버전 aspectj dependency 설정❗️
0
230
1
왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?
0
104
2
윈도우 build test오류 질문
1
102
2
테스트 관련 공부에 대한 조언을 얻고 싶습니다
0
101
2
테스트 실행 시 에러 질문
0
292
1
name을 통한 비교와 객체를 통한 비교
0
77
1
빌드 후 libs 없음
1
129
1
윈도우 gradlew.bat 에러
0
167
1
@PostMapping("/members/new")가 동작하지 않습니다
0
89
1
java static class와 kotlin class
0
79
1
스프링 DB연결
0
126
1
소요 시간
0
87
2
ddl.sql에 빨간 밑줄
1
102
2
welcome page 에러
0
183
3
잘 모르겠습니다.
0
164
2
fail을 똑같이 쳤는데 오류가 발생해요
0
156
2
index.html Welcome page
0
124
1
프로젝트 gradle-groovy ?
0
369
1
테스트코드 메서드명 한글
0
202
2





