inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

회원 웹 기능 - 조회

members/membersList.html

272

km54277

작성한 질문수 34

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요
Member클래스가 구현되어있는 것을 보면 id와 name은 private으로 구현되서 밖에서 접근하지 못하게 되어있습니다.
members/membersListhtml에서 body내에 템플릿 문법으로 구성된 반복문에서 ${member.id} 와 ${member.name} 이렇게 되서 member의 id와 name에 바로 접근해서 값을 가져오는 것처럼 보이는데 어떻게 getter와 setter로 값을 가져오는 것인지 궁금합니다.
감사합니다.

자바property방식 spring-boot MVC spring java

답변 2

1

OMG

안녕하세요. km54277님, 공식 서포터즈 OMG입니다.

객체의 필드는 private 하지만, getter와 setter는 public으로 생성하기 때문에

getter와 setter의 이름 규칙getXxx, setXxx 으로 바인딩이 가능합니다.

이를 프로퍼티 바인딩이라 하며, 자세한 내용은 영한님의 MVC1편 강의를 참고해주세요.

감사합니다.

0

km54277

답변 감사합니다.

저러한 방식이 프로퍼티 바인딩이라는 것은 강의를 통해 알고 있습니다. 그런데 제가 궁금한 점은 생김새(?)가 member.id 와 member.name 처럼 클래스에 직접 접근해서 그 값을 가져오는 것처럼 생겨서 이것들이 어떻게 프로퍼티를 통해 값을 가져오게 되는 것인지 궁금했습니다.

감사합니다.

0

나무늘보

안녕하세요 km54277님!

.

우선 스프링과 통합하기 이전의 타임리프 사용법을 살펴볼 필요가 있을것 같습니다.

아래의 코드는 타임리프 메뉴얼에서 설명하고 있는 타임리프 사용법 입니다.

WebContext ctx = new WebContext(request, response, servletContext, request.getLocale());
ctx.setVariable("today", dateFormat.format(cal.getTime()));
        
templateEngine.process("home", ctx, response.getWriter());

.

위와 같이 WebContext 객체에 사용할 '키'와 '객체'를 매핑하는 부분이 있습니다. 그리고 저렇게 매핑된 콘텍스트를 타임리프 엔진에서 사용할 수 있도록 전달하고 있음을 알 수 있습니다.

그리고 타임리프 메뉴얼 4.2 Variables 를 참조하면

타임리프에서 ${...} 변수 표현식을 사용하게 되면 키를 가지고 객체를 찾는다는 것을 알 수 있습니다.그리고 객체의 객체의 프로퍼티에 접근하는 경우 (session.user.name) 우선 세션 객체를 찾고, 그 객체가 참조하고 있는 user객체를 그리고 프로퍼티는 getName() 을 호출하는 것을 볼 수 있습니다. 

.

즉 타임리프는 객체의 프로퍼티에 직접 접근하는 것이 아니라, getter 를 통해 접근하고 있음을 확인할 수 있습니다.

.

감사합니다.

0

OMG

codesweaver님의 댓글을 참고해주세요.

감사합니다.

인텔리제이 오류

0

49

1

..

0

111

2

Unused property.....

0

121

2

project JDK is misconfigured

0

164

2

외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석

0

101

2

단위/통합 테스트 버전충돌 문제

0

102

2

❗️springboot 4.0.2 버전 aspectj dependency 설정❗️

0

254

1

왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?

0

120

2

윈도우 build test오류 질문

1

118

2

테스트 관련 공부에 대한 조언을 얻고 싶습니다

0

111

2

테스트 실행 시 에러 질문

0

312

1

name을 통한 비교와 객체를 통한 비교

0

81

1

빌드 후 libs 없음

1

148

1

윈도우 gradlew.bat 에러

0

186

1

@PostMapping("/members/new")가 동작하지 않습니다

0

98

1

java static class와 kotlin class

0

89

1

스프링 DB연결

0

144

1

소요 시간

0

96

2

ddl.sql에 빨간 밑줄

1

117

2

welcome page 에러

0

199

3

잘 모르겠습니다.

0

172

2

fail을 똑같이 쳤는데 오류가 발생해요

0

173

2

index.html Welcome page

0

137

1

프로젝트 gradle-groovy ?

0

401

1