소개
Spring 3.0 이상 부터는 Ajax 처리 시 아래와 같은 방법으로 쉽게 처리가 가능 하다.
RequestMapping(value="/sample", method=RequestMethod.GET})
public @ResponseBody String sample() {
return "sample";
}
하지만 범용적으로 사용하고 싶을 때가 있을 것 이다. 그런 경우 사용하는 방법 이다.
아래 설명을 참고하여 적용 해 보자.
적용 방법
1. AjaxView
public class AjaxView extends AbstractView {
public AjaxView() {
setContentType("text/json;charset=utf-8");
}
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
this.setResponseContentType(request, response);
String reponseString = "";
// responseString Doing...
PrintWriter writer = response.getWriter();
writer.print(reponseString);
writer.flush();
try { if (writer != null) { writer.close(); } } catch (IOException ioe) {}
} catch (Exception e) {
throw e;
}
}
}
2. applicationContext.xml
파일 하단에 추가 하자.
<beans:bean id="ajaxView" class="kr.co.whitelife.AjaxView" />
3. SampleController
View 를 ajaxView 로 교체 하자.
@Controller
public class SampleController {
@Resource(name="ajaxView")
private View ajaxView;
@RequestMapping(value="/sample", method=RequestMethod.GET})
public ModelAndView sample() {
ModelAndView mav = new ModelAndView();
mav.setView(this.ajaxJsonView);
// Doing...
return mav;
}
}
4. Sample Request
http://localhost:8080/sample 요청 해 보자.