Spring 3/@ResponseBody

@ResponseBody in Spring 3

Soul-Learner 2015. 2. 17. 15:13

Spring에서 @ResponseBody 를 사용하여 콘트롤러에서 응답을 작성하는 예



개요

Spring 3의 콘트롤러 메소드를 선언할 때 @ResponseBody를 사용하면 해당 콘트롤러 메소드에서 리턴하는 값이 바로 응답 바디가 되므로 다른 뷰로 연결하지 않고도 간단한 응답을 클라이언트에게 직접 전송할 수 있다.

JSP가 아닌 일반 클래스에서 작성된 한글이 JSP를 경유하지 않고 바로 웹브라우저에 전달될 때는 한글이 깨질 수도 있는 이 때는 다음과 같이 설정한면 된다

@RequestMapping(value="/ajaxLogin", method=RequestMethod.POST, produces = "application/json; charset=utf8"

@ResponseBody 

public String ajaxLogin(MemVO mem, Model model) { 

   return svc.ajaxLogin(mem ); 

}



사용 예

@RequestMapping(value="login", method=RequestMethod.POST, 
                    produces="application/json;charset=utf8")
@ResponseBody
public String process(UserVO user, HttpSession session) {
	String id = user.getId();
	String pwd = user.getPwd();
		
	String login = "false";
	if(id.equals("myid") && pwd.equals("mypwd")) {
		session.setAttribute("login", id);
		login="true";
	}else {
		login="false";
	}
	return login;
}