컨트롤러에서 map형식의 파라미터를 인식하지 못합니다.
- 작성자 :
- 배*호
- 작성일 :
- 2011-07-14 15:02:08
- 조회수 :
- 2,219
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
@RequestMapping(value="/uss/umt/cmm/EgovIdDplctCnfirm.do")
public String checkIdDplct(
Map<String, Object> commandMap,
ModelMap model
)throws Exception {
String checkId = (String)commandMap.get("checkId");
checkId = new String(checkId.getBytes("ISO-8859-1"), "UTF-8");
if (checkId==null || checkId.equals("")) return "forward:/uss/umt/EgovIdDplctCnfirmView.do";
int usedCnt = userManageService.checkIdDplct(checkId);
model.addAttribute("usedCnt", usedCnt);
model.addAttribute("checkId", checkId);
return "cmm/uss/umt/EgovIdDplctCnfirm";
}
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="egovframework.com.cmm.web.EgovBindingInitializer"/>
</property>
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.CommandMapArgumentResolver"/>
</list>
</property>
</bean>
위 부분은 전자정부프레임워크에서 제공하는 아이디중복확인 공통 콤포넌트쪽의 소스이고 아래는 xxx-servlet.xml에서 map형식의 파라미터를 받기 위해 설정하는 부분입니다. (프레임워크 설정 부분을 그래도 따라한 부분.)
map타입의 파라미터가 설정된 컨트롤러쪽에는 null point exception을 계속 출력하고 있습니다.
특별히 다른 부분을 확인해야하는 부분이 있는지 궁금합니다.
-- 수정 : MAVEN쪽의 전자정부 프레임워크에서 제공하는 JAR파일들도 정상적으로 임포트된 상태입니다.
public String checkIdDplct(
Map<String, Object> commandMap,
ModelMap model
)throws Exception {
String checkId = (String)commandMap.get("checkId");
checkId = new String(checkId.getBytes("ISO-8859-1"), "UTF-8");
if (checkId==null || checkId.equals("")) return "forward:/uss/umt/EgovIdDplctCnfirmView.do";
int usedCnt = userManageService.checkIdDplct(checkId);
model.addAttribute("usedCnt", usedCnt);
model.addAttribute("checkId", checkId);
return "cmm/uss/umt/EgovIdDplctCnfirm";
}
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="egovframework.com.cmm.web.EgovBindingInitializer"/>
</property>
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.CommandMapArgumentResolver"/>
</list>
</property>
</bean>
위 부분은 전자정부프레임워크에서 제공하는 아이디중복확인 공통 콤포넌트쪽의 소스이고 아래는 xxx-servlet.xml에서 map형식의 파라미터를 받기 위해 설정하는 부분입니다. (프레임워크 설정 부분을 그래도 따라한 부분.)
map타입의 파라미터가 설정된 컨트롤러쪽에는 null point exception을 계속 출력하고 있습니다.
특별히 다른 부분을 확인해야하는 부분이 있는지 궁금합니다.
-- 수정 : MAVEN쪽의 전자정부 프레임워크에서 제공하는 JAR파일들도 정상적으로 임포트된 상태입니다.
A
안녕하세요.. 배민호님..
Spring MVC의 경우는 기본적으로 Map 형태로 파라미터를 받을 수가 없습니다.
다만, 표준프레임워크 실행환경에서는 AnnotationMethodHandlerAdapter의 customArgumentResolvers 기능을 활용하여 argument 명이 "commandMap"인 경우..
request 파라미터를 해당 map에 넣어주는 기능을 추가하였습니다.
이 처리를 하기 위해서는 다음과 같은 설정이.. 추가되셔야 합니다.
(위치는 WEB-INF/ 하위에 있는 servet 관련 설정 파일)
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.CommandMapArgumentResolver"/>
</list>
</property>
</bean>
그럼.. 즐거운 하루되십시오.
감사합니다.
Spring MVC의 경우는 기본적으로 Map 형태로 파라미터를 받을 수가 없습니다.
다만, 표준프레임워크 실행환경에서는 AnnotationMethodHandlerAdapter의 customArgumentResolvers 기능을 활용하여 argument 명이 "commandMap"인 경우..
request 파라미터를 해당 map에 넣어주는 기능을 추가하였습니다.
이 처리를 하기 위해서는 다음과 같은 설정이.. 추가되셔야 합니다.
(위치는 WEB-INF/ 하위에 있는 servet 관련 설정 파일)
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.CommandMapArgumentResolver"/>
</list>
</property>
</bean>
그럼.. 즐거운 하루되십시오.
감사합니다.