Spring MVC - JSON Request/Response sample - Spring



Spring MVC에서 JSON 을 통한 Request/Response 방법 예시

1. jackSon lib를 설치해야 한다. Maven을 통한 설치법 및 간략한 jackSon 사용법은 아래 링크 글 참고

2. 아래는 직접 작성한 샘플 소스

@Controller //Anotation 으로 Conroller 호출

@RequestMapping("/jsonController ") // ROOT/ jsonController 경로로 오는 URL 모두 Controller 매핑

public class jsonController { //Controler(Class 정의)

      

@Resource(name=" jsonControllerService")

       private JsonControllerService jsonControllerService;

       // Anotation 이용하여 사용할 Service Class 호출

//Service단에서 jsonControllerService 정의된 Service항목을 자동 매핑 해준다.

      

       //RequestMapping 이용한 URL mapping. / jsonController 다음에 /jsonData 오면 아래 메서드로 매핑된다.

          // ) http://localhost/프로젝트명/ jsonController /jsonData

          // 또한 RequestMethod.POST 정의를 통해, POST방식으로 요청을 받게끔 정의한다. (GET 요청은 매핑 안시켜줌)

          // consumes 통해 POST방식으로 넘어온 요청에서 json 형태로 postData 넘겨줌을 정의

@RequestMapping(value="/jsonData", method=RequestMethod.POST,consumes="application/json")

       public @ResponseBody List<Map<String,Object>> getCheckListSpecificByAjax(@RequestBody Map<String,Object> map){

              

               //@ResponseBody : 해당 메서드의 Return 타입 설정. 여기서는 List<Map<String,Object>> 형식으로 리턴해줌

                   // 특정 DTO(VO) 형식으로 경우, 해당 타입으로 정의 (ex: @ResponseBody List<User>)

                   //@RequestBody : 해당 메서드로 넘어오는 postData 데이터 형태(json 구조) 선언

                   // 만약 특정 DTO(VO) 형태로 자동 매핑하여 받을 경우, 해당 타입으로 정의 (ex: @RequestBody User user)

 

               List<Map<String,Object>> list = jsonControllerService.selectDashboardList(map);

               //Service에서 리턴된 값을 받는 부분. 주로 DB처리 후의 값을 Service(jsonControllerService.selectDashboardList)에서 해줌

                   //특정 DTO(VO) 받을 경우 해당 정의로 받아주면

                   //) List<User> uList = sampleService.selectList();

              

return list;

//조회 결과 return

//return시에는 넘겨줄 json 구조로 데이터를 구성 리턴해준다.

//만약 List<User> uList = sampleService.selectList(); 형태로 리턴이 된다고 하면 아래와 같은 구조로 JSON 리턴됨

//List = {

//                 {ID: id1, PW: pw1, email:email1@email.com},

//                 {ID: id2, PW: pw2, email:email2@email.com},

//                 ......

//        }

//, List라는 배열안에, User라는 DTO 여러 들어가 있는 구조.

//List 내부의 DTO값들에 대한 편집이 필요할 경우, While이나 For등을 통해 List Row조회 user값에 접근

//)

//User user = null;

//for(int i=0; i<list.size(); i++){

//        user = list.get(i);

//        //user.getID();

//        //user.setID(“temp”);

//}

       }

      

}



1. You need to install jackSon Lib for using JSON Request/Response on Spring MVC
2. Refer a upper source about how to using JSON Request/Response on Sping, specially check @RequestBody and @ResponseBody.





AD_1