@CommandMap 구현 구성 질문
- 작성자 :
- 김*수
- 작성일 :
- 2023-07-28 16:35:50
- 조회수 :
- 601
- 구분 :
- 개발환경 / 3.10
- 진행상태 :
- 완료
Q
@CommandMap의 구현체를 참고하여 커스텀 어노테이션을 만들려 하는데
@CommandMap을 적용할 경우 파라미터는 정상적으로 넘어오나 Controller 단에서 메소드가 Map 자료형 객체 타입을
반환 시 java.util.HashMap 변환 관련 오류가 발생 되고있습니다.
Controller 반환 객체 JSON 처리로는 GsonHttpMessageConverter를 적용하여 사용하고 있으며
@CommandMap 적용 설정 삭제시 해당 문제는 발생 되지 않고있습니다.
하여 실질적으로 egovframework.rte.ptl.mvc.bind.AnnotationCommandMapArgumentResolver 구현체를 적용하는
EgovRequestMappingHandlerAdapter 내용 분석결과 전체 HandlerMethodArgumentResolver를 저장하는 List 자료형 변수에서
AnnotationCommandMapArgumentResolver 타입의 리졸버를 탐색하여 해당 리졸버만 저장한 List자료형을 다시 생성하여
RequestMappingHandlerAdapter.setArgumentResolvers()의 매개변수에 넣고 초기화하여 최종적으로는
AnnotationCommandMapArgumentResolver만 RequestMappingHandlerAdapter.argumentResolvers 맴버변수에
초기화되어 생기는 문제로 보이는데 실제로 분석 내용처럼 적용되었는지 여부와 해당 프레임워크
새로운형태의 @Target(ElementType.PARAMETER)로 선언된 어노테이션 생성 절차를 안내해주시면 감사드리겠습니다.
@CommandMap을 적용할 경우 파라미터는 정상적으로 넘어오나 Controller 단에서 메소드가 Map 자료형 객체 타입을
반환 시 java.util.HashMap 변환 관련 오류가 발생 되고있습니다.
Controller 반환 객체 JSON 처리로는 GsonHttpMessageConverter를 적용하여 사용하고 있으며
@CommandMap 적용 설정 삭제시 해당 문제는 발생 되지 않고있습니다.
하여 실질적으로 egovframework.rte.ptl.mvc.bind.AnnotationCommandMapArgumentResolver 구현체를 적용하는
EgovRequestMappingHandlerAdapter 내용 분석결과 전체 HandlerMethodArgumentResolver를 저장하는 List 자료형 변수에서
AnnotationCommandMapArgumentResolver 타입의 리졸버를 탐색하여 해당 리졸버만 저장한 List자료형을 다시 생성하여
RequestMappingHandlerAdapter.setArgumentResolvers()의 매개변수에 넣고 초기화하여 최종적으로는
AnnotationCommandMapArgumentResolver만 RequestMappingHandlerAdapter.argumentResolvers 맴버변수에
초기화되어 생기는 문제로 보이는데 실제로 분석 내용처럼 적용되었는지 여부와 해당 프레임워크
새로운형태의 @Target(ElementType.PARAMETER)로 선언된 어노테이션 생성 절차를 안내해주시면 감사드리겠습니다.
환경정보
-
- OS 정보 : window 10
- 표준프레임워크 버전 : 3.10
- JDK(JRE) 정보 : 1.8
- WAS 정보 : Tomcat 8.5
- DB 정보 : MS-SQL
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
입력값에 @CommandMap과 AnnotationCommandmapArgumentResolver를 통해 Map객체를 사용하는 방법에 대해서는
표준프레임워크 위키가이드에서 상세 내용을 제공하고 있습니다.
해당 링크에서 확인 가능하므로 참고 부탁 드립니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:ptl:annotationcommandmapargumentresolver
감사합니다.
표준프레임워크 센터입니다.
입력값에 @CommandMap과 AnnotationCommandmapArgumentResolver를 통해 Map객체를 사용하는 방법에 대해서는
표준프레임워크 위키가이드에서 상세 내용을 제공하고 있습니다.
해당 링크에서 확인 가능하므로 참고 부탁 드립니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:ptl:annotationcommandmapargumentresolver
감사합니다.