오봉이와 함께하는 개발 블로그
Form에서 @Embeddable 객체 응답받기 본문
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는 Birth
와 Phone
을 가진다. (@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