개발

[java] DB의 내용을 json으로 리턴 @ResponseBody

지승준 2014. 8. 10. 22:24

XML이나 JSON형태의 View를 리턴하는 방법은 뷰타입의 빈을 등록하고 뷰를 사용하는 방법과 

메세지컨버터와 관련API를 사용하여 직접 출력스트림에 직접 보내는 방법이 있다.

여기선는 요즘 많이 사용되는 메세지컨버터를 사용하는 방법인 @ResponseBody의 대해 설명한다.


메세지컨버터를 사용하기 위해서는 지원 메세지컨버터를 빈으로 등록하여 하는데, 

설정파일에 <mvc:annotation-driven/>전용태그만으로 디폴트 메세지컨버터 빈들이 등록된다. 

XML을 지원하는 Jaxb2RootElementHttpMessageConvert와 

JSON을 지원하는 MappingJacksonHttpMessageConvert의 빈도 디폴트로 등록된다.


1. jackson-core-asl.jar, jackson-mapper-asl.jar 라이브러리 추가 


2. dispatcher-servlet.xml → <mvc:annotation-driven/> 추가 


3. java


1
2
3
4
5
6
7
8
9
10
11
12
@RequestMapping(value = "/dr/listJson.do")
    public @ResponseBody Map<?, ?> listJson(HttpServletRequest request, ModelMap modelMap ) throws SQLException {
 
        Map<String, Object> paramMap = Utility.getParamMap(request);        
 
        ArrayList list = (ArrayList) DrService.list(paramMap);
 
        modelMap.put("result", list);     
 
        return modelMap;
        
    }
cs