본문 바로가기
Language/Java

AbstractResourceRenderer.renderBody 에러 해결방법

by 나비와꽃기린 2018. 5. 28.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Ajax로 통신을 하던 도중 에러가 발생했다.

AbstractResourceRenderer.renderBody 블라블라..




이유인 즉슨, 다음과 같이 ajax를 호출할 때


$.ajax({
	type:"POST",
	url: "/contextRoot입력..../menuList",
	dataType: "json",
	//data 	: params,
	cache 	: false,
	success : function(resData){
				
		console.log("menuData :: ",resData);
	},
	error 	: function(xhr, status, e){
				
		console.log("여기는  error");
		//alert("오류가 발생하여 목록을 불러오지 못했습니다.");
	}
});


서버에서 클라이언트로 송신해주는 Response Data를 Body 부분으로

전달해 줘야 하는데



▲잘못된 소스 예

위 소스와 같이 


@ResponseBody가 정의되어 있지 않았던것 (!!)

따라서 어떤 Body에 실어 응답데이터를 전달해줘야 하는지 서버입장에서는 몰랐던거다.

public @ResponseBody String menuList ~~ 블라블라 처럼 정의해주면 간단하게 해결된다.



Spring의 Annotation을 활용,

Jackson lib를 통해서 Return 타입을 json 타입으로 바꿔주는 거




▲ 올바른 소스 예