반응형
새로운 프로젝트에
서비스단에서 만든 Map<String, Object> 를 리턴하려고 하니
No converter found for return value of type: class java.util.HashMap
이런 에러가 났다.
검색해보니
HashMap을 json형태로 변환을 할 수 없기 때문이란다.
검색해보니 pom.xml 에 dependency 추가 해결이 제일 많았다.
그런데 프로젝트를 같이 작업 중이라 pom.xml 건들기가 좀 그래서
여쭈었더니 ModelAndView 객체 이용해서 하라고 하심!
// 기존 방법 : Map으로 리턴한다.
@ResponseBody
@RequestMapping(value = "/test/basic/proc.do", method = RequestMethod.POST)
public Map<String, Object> proc(HttpServletRequest request) throws Exception {
// 리턴 객체 생성
Map<String, Object> rtnObj = new HashMap<String, Object>();
// 중간 서비스 처리 (생략)
// 리턴 값 넣기
rtnObj.put("result",true);
return rtnObj;
}
// 모델앤뷰로 변경
@ResponseBody
@RequestMapping(value = "/test/basic/proc.do", method = RequestMethod.POST)
public ModelAndView proc(HttpServletRequest request) throws Exception {
// 모델앤뷰 객체 생성
ModelAndView mav = new ModelAndView();
// 맵 리턴 객체 생성
Map<String, Object> rtnObj = new HashMap<String, Object>();
// 중간 서비스 처리 (생략)
// 리턴 맵 값 넣기
rtnObj.put("result",true);
// 모델앤뷰에 담기
mav = new ModelAndView("jsonView", "jsonObj", rtnObj);
return mav;
}
리턴타입만 바꿔주고 모델앤뷰에 담아만 주면 된다.
사용자 단 - ajax로는 이렇게 받으면 된다.
$.ajax({
type : 'POST'
, url : "./proc.do"
, data : {"pidx" : idx, "status" : use_yn}
, dataType : 'json'
, success : function(data){
if(data.jsonObj.result){
// 기타 처리 생략
console.log("성공");
}
}
, error:function(request,status,error){
console.log("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
alert("일시적인 오류가 발생했습니다");
return false;
}
});
컨버터 에러없이 잘 작동한다!
728x90
반응형
'Java' 카테고리의 다른 글
자주쓰는 JSTL 정리 (0) | 2023.02.02 |
---|---|
이클립스 및 STS - 자주 쓰는 단축키 모음 (0) | 2023.01.19 |
[Java] 날짜&시간 포맷 설정 - SimpleDateFormat (0) | 2023.01.05 |
[JSP] JSP 태그 (0) | 2022.12.28 |
Excel POI 사용법 (0) | 2022.10.20 |