DTO 안에 필드로 DTO를 넣었습니다.
- 작성자 :
- 신*호
- 작성일 :
- 2020-08-04 16:04:28
- 조회수 :
- 3,859
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요
다름이 아니라 전자정부 프로젝트를 하다가 막혀서 질문드립니다.
client에서 json 안에 또 다른 json을 중첩시켜 서버로 get 방식으로 보냅니다
그리고 컨트롤러 메서드에서 DTO를 통해 받는데요, 클라이언트에서 보낸 json이 중첩이므로, DTO 안에 DTO를 필드로 가지고 있습니다.
필드로 있는 DTO는 클라이언트에서 제가 json모양으로 stringify 해서 올려도보고, 그대로 object로도 올려봤습니다.
메서드에서 다른 필드는 다 제대로 들어오는데 DTO를 클래스로 갖는 필드는 null이더라구요
request에서 빼면 잘 담겨있는데.. 따로 받아서 상위 DTO에 setter를 통해 넣어주면 그만이긴 한데, 이걸 컨트롤러 메서드에서
한번에 받는 방법이 없을까요?
다름이 아니라 전자정부 프로젝트를 하다가 막혀서 질문드립니다.
client에서 json 안에 또 다른 json을 중첩시켜 서버로 get 방식으로 보냅니다
그리고 컨트롤러 메서드에서 DTO를 통해 받는데요, 클라이언트에서 보낸 json이 중첩이므로, DTO 안에 DTO를 필드로 가지고 있습니다.
필드로 있는 DTO는 클라이언트에서 제가 json모양으로 stringify 해서 올려도보고, 그대로 object로도 올려봤습니다.
메서드에서 다른 필드는 다 제대로 들어오는데 DTO를 클래스로 갖는 필드는 null이더라구요
request에서 빼면 잘 담겨있는데.. 따로 받아서 상위 DTO에 setter를 통해 넣어주면 그만이긴 한데, 이걸 컨트롤러 메서드에서
한번에 받는 방법이 없을까요?
A
안녕하세요.
표준프레임워크센터 입니다.
표준프레임워크와 직접 관련은 없는 내용으로 보이고
DTO에 DTO가 추가로 담기는 구조로 이해가 됩니다.
개인적으로 이런경우 ArgumentResolver에서 처리가 않되는 것으로 알고 있습니다.
기존에 테스트시에
따로 받아서 상위 DTO에 추가해시는것도 방법인듯 합니다.
별도의 Argumentresolver를 커스텀하시면
가능할수도 있으나 굳이 그렇게 할 필요는 없어 보입니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:ptl:annotationcommandmapargumentresolver
감사합니다.
표준프레임워크센터 입니다.
표준프레임워크와 직접 관련은 없는 내용으로 보이고
DTO에 DTO가 추가로 담기는 구조로 이해가 됩니다.
개인적으로 이런경우 ArgumentResolver에서 처리가 않되는 것으로 알고 있습니다.
기존에 테스트시에
따로 받아서 상위 DTO에 추가해시는것도 방법인듯 합니다.
별도의 Argumentresolver를 커스텀하시면
가능할수도 있으나 굳이 그렇게 할 필요는 없어 보입니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:ptl:annotationcommandmapargumentresolver
감사합니다.