Map 사용에 질문있습니다.
- 작성자 :
- 김*호
- 작성일 :
- 2014-07-03 10:18:54
- 조회수 :
- 989
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요.
전자정부프레임워크3.0 적용하는중에 있습니다.
질문드릴게 있는데, Controller단에서 파라메터를 받거나 넘길때 Map을 사용할 수 가 있는데,
3.0에서는 @CommandMap을 지원한다고 답변을 들었는데, 꼭 이렇게 사용해야하는지 알고 싶습니다.
예시)
1. public ModelAndView aaaa (Map map) { ... } -- 이런형태의 사용가능여부
2. public ModelAndView bbbb (HttpServletRequest request) { .... }
2번 경우는 request를 받아서 Map 형태로 가공해서 사용합니다.
파라메터를 @CommandMap방식이 아닌 위 두가지 방법으로 사용해도 검증에 문제가 없나요?
기존만들어진 소스에 3.0을 적용하는거다보니 파라메터 방식은 사내 내부방식대로 만들어져 있는터라 여쭤봅니다.
물론 Service 와 DAO 는 EgovAbstractServiceImpl 와 EgovAbstractDAO 는 모두 상속받고 있습니다.
감사합니다.
전자정부프레임워크3.0 적용하는중에 있습니다.
질문드릴게 있는데, Controller단에서 파라메터를 받거나 넘길때 Map을 사용할 수 가 있는데,
3.0에서는 @CommandMap을 지원한다고 답변을 들었는데, 꼭 이렇게 사용해야하는지 알고 싶습니다.
예시)
1. public ModelAndView aaaa (Map map) { ... } -- 이런형태의 사용가능여부
2. public ModelAndView bbbb (HttpServletRequest request) { .... }
2번 경우는 request를 받아서 Map 형태로 가공해서 사용합니다.
파라메터를 @CommandMap방식이 아닌 위 두가지 방법으로 사용해도 검증에 문제가 없나요?
기존만들어진 소스에 3.0을 적용하는거다보니 파라메터 방식은 사내 내부방식대로 만들어져 있는터라 여쭤봅니다.
물론 Service 와 DAO 는 EgovAbstractServiceImpl 와 EgovAbstractDAO 는 모두 상속받고 있습니다.
감사합니다.
A
안녕하세요. 표준프레임워크입니다.
말씀해주신 1,2번 같은 경우
1번은 사용이 불가능하며 2번과 같이 request를 받아서 가공하시는것은 가능합니다.
저희가 기존에 제공하는 방법은 public ModelAndView aaaa (Map commandMap) 과 같이 파라미터명이 반드시 commandMap이어야 Map형태로 받을 수 있는 방식이었습니다.
Spring에서 기존에 제공하던 DefaultAnnotationHandlerMapping과 AnnotationMethodHandlerAdapter를 쓰시면 위와같이 기존 Map형태로 쓰실 수 있습니다.
그러나 Spring 3.2부터 이 두 클래스가 deprecated되었으며 RequestMappingHandlerMapping, RequestMappingHandlerAdapter로 대체되었습니다.
RequestMappingHandlerMapping, RequestMappingHandlerAdapter를 쓰시면 기존 Map형태로 바로 쓰실 수 없고,
대신 EgovRequestMappingHandlerAdapter(RequestMappingHandlerAdapter 대신), RequestMappingHandlerMapping를 설정하시고
@CommandMap을 설정하셔야만 사용이 가능합니다.
다음과 같이 쓰시면 됩니다.
-- 설정 예--
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
</bean>
<bean class="egovframework.rte.ptl.mvc.bind.annotation.EgovRequestMappingHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.AnnotationCommandMapArgumentResolver" />
</list>
</property>
</bean>
import egovframework.rte.ptl.mvc.bind.annotation.CommandMap;
...
@RequestMapping("/cmm/selectList.do")
public String selectList(@CommandMap Map<String, Object> commandMap, ModelMap model) {
... 생략
}
가이드는 http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtemigration3.0 를 참고하시기 바랍니다.
감사합니다.
말씀해주신 1,2번 같은 경우
1번은 사용이 불가능하며 2번과 같이 request를 받아서 가공하시는것은 가능합니다.
저희가 기존에 제공하는 방법은 public ModelAndView aaaa (Map commandMap) 과 같이 파라미터명이 반드시 commandMap이어야 Map형태로 받을 수 있는 방식이었습니다.
Spring에서 기존에 제공하던 DefaultAnnotationHandlerMapping과 AnnotationMethodHandlerAdapter를 쓰시면 위와같이 기존 Map형태로 쓰실 수 있습니다.
그러나 Spring 3.2부터 이 두 클래스가 deprecated되었으며 RequestMappingHandlerMapping, RequestMappingHandlerAdapter로 대체되었습니다.
RequestMappingHandlerMapping, RequestMappingHandlerAdapter를 쓰시면 기존 Map형태로 바로 쓰실 수 없고,
대신 EgovRequestMappingHandlerAdapter(RequestMappingHandlerAdapter 대신), RequestMappingHandlerMapping를 설정하시고
@CommandMap을 설정하셔야만 사용이 가능합니다.
다음과 같이 쓰시면 됩니다.
-- 설정 예--
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
</bean>
<bean class="egovframework.rte.ptl.mvc.bind.annotation.EgovRequestMappingHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.AnnotationCommandMapArgumentResolver" />
</list>
</property>
</bean>
import egovframework.rte.ptl.mvc.bind.annotation.CommandMap;
...
@RequestMapping("/cmm/selectList.do")
public String selectList(@CommandMap Map<String, Object> commandMap, ModelMap model) {
... 생략
}
가이드는 http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtemigration3.0 를 참고하시기 바랍니다.
감사합니다.