Controller 의 파라미터를 Map 으로 처리문제 문의
- 작성자
- 관리자
- 작성일자
- 2009-09-07
- 조회수
- 3,339
Q
demo 의 Controller 샘플을 보면 아래와 같이 VO 를 설정하여 넘겨주게 되어있는데 VO 대신에 Map 을 통하여 request 파라미터값을 받고 싶습니다.
public String selectSampleList(@ModelAttribute("searchVO") SampleDefaultVO searchVO, ModelMap model) throws Exception
전에 교육받으면서 강사님께 질문을 드렸는데 된다고 하시던데, 제가 설정을 잘못해서 그런지 값이 않넘어옵니다.
어떤식으로 변경을 하면 될까요? 그리고 Map 을 사용했을 경우 Vaildation 체크를 어떻게 해야하나요??
A
egovframework 에서 제공되는 util 중
CommandMapArgumentResolver 라는 클래스가 있는데 request 를 통해 넘어오는 parameter 데이타를 (request.getParameterNames() 이용) 꺼내와 map 으로 리턴을 해주고 있습니다. Controller 의 메소드 파라미터명을 commandMap 으로 쓰시면 자동 바인딩된 map 을 받게 됩니다.
public String getDepartmentList(Map<String, String> commandMap, ModelMap model){
설정은 아래와 같이 하면 됩니다.
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.CommandMapArgumentResolver" />
</list>
</property>
</bean>
CommandMapArgumentResolver 라는 클래스가 있는데 request 를 통해 넘어오는 parameter 데이타를 (request.getParameterNames() 이용) 꺼내와 map 으로 리턴을 해주고 있습니다. Controller 의 메소드 파라미터명을 commandMap 으로 쓰시면 자동 바인딩된 map 을 받게 됩니다.
public String getDepartmentList(Map<String, String> commandMap, ModelMap model){
설정은 아래와 같이 하면 됩니다.
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.CommandMapArgumentResolver" />
</list>
</property>
</bean>