소개


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 요청 해 보자.


+ Recent posts