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; }