새로운 프로젝트에
서비스단에서 만든 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;
}
});
컨버터 에러없이 잘 작동한다!
'Java&Spring' 카테고리의 다른 글
Spring 쿼리 로그 보기 (Oracle) (0) | 2023.06.22 |
---|---|
[Spring] STS - mapper 폴더구조가 패키지로 보이는 현상 해결 (1) | 2023.05.11 |
[Java] 날짜&시간 포맷 설정 - SimpleDateFormat (0) | 2023.01.05 |
[Java] HttpServletRequest - URL,URI 값 추출하기 (0) | 2021.09.08 |
[파이썬] 기초 정리 (0) | 2020.12.09 |