오봉이와 함께하는 개발 블로그

Form에서 @Embeddable 객체 응답받기 본문

Artineer 리뉴얼 프로젝트

Form에서 @Embeddable 객체 응답받기

오봉봉이 2022. 9. 23. 19:24
728x90

문제

model.addAttribute("form", new MemberSaveDto());

위 코드를 통해 Dto만 넘겨준다.

@Getter
@Setter
public class MemberSaveDto {
    private String id;
    private String password;
    private String name;
    private Birth birth;
    private String email;
    private Phone phone;
    private String gender;
    private String generation;
    private String level;
}

DTO는 BirthPhone을 가진다. (@Embeddable 객체다.)

타임리프에서 form을 통해 데이터를 넘겨 받아야 하는데, 아래 코드로 값이 받아지지 않았다.

Birth birth = new Birth(dto.getBirth().getYear(), dto.getBirth().getMonth(), dto.getBirth().getDay());
Phone phone = new Phone(dto.getPhone().getFirstNumber(), dto.getPhone().getMiddleNumber(), dto.getPhone().getLastNumber());

해결

어떻게 해결 됐는지는 모르겠지만, @Data어노테이션을 추가하니 값을 읽어올 수 있게 되었다.
라고 글을 쓰려 했지만..... @Data 어노테이션에 있는 모든 어노테이션을 통해 실험하려고 기존 @Getter@Setter를 추가하니 되었다.
Setter()메소드를 통해 값을 세팅하지 못 해서 발생했던 문제같다.

728x90

'Artineer 리뉴얼 프로젝트' 카테고리의 다른 글

Interceptor 적용  (0) 2022.09.27
검증(@Validated)에서 groups 사용 문제  (0) 2022.09.26
기능 정리  (0) 2022.09.22
JPA - 테이블 매핑 에러 해결  (1) 2022.09.21
다시 시작  (0) 2022.09.20
Comments