angularjs , $resource 와 spring @requestBody

spring framework 2013.11.11 20:23 posted by dev.bistro

현재 만드는 시스템은 Daum통합검색이라는 매우 레거시-_-한 시스템에 붙여야 한다. 그래서 방어적인 설계와, 프레임웍을 선정하였지만... 운영툴은 다르지 않는가!? 그래서 angularjs를 적용중이다. 
운영툴의 난이도는 둘째치고 angularjs 계속 배우면서 진행하려니 매우 더디네.. 오늘은 INSERT부분에서 좀 막혀서 정리한다.


* Spring 설정

HttpMessageConverter 인터페이스의 구현체를 바라보면 Jackson2 와 Jackson이 있다. 



그 중에서 내가 사용할 MappingJackson2HttpMessageConverter 는 @since 3.1.2이고 Jackson 2를 이용하고 있다.  이 녀석은 생성될 때 아래와 같음을 주의하자.

super(new MediaType("application", "json", DEFAULT_CHARSET), new MediaType("application", "*+json", DEFAULT_CHARSET));

이 컨버터를 RequestMappingHandlerAdapter에 messageConverters로 등록한다. 


이후 아래와 같은 컨트롤러를 작성하고

    @RequestMapping(value = "/api/collection", consumes = APPLICATION_JSON_VALUE, method=RequestMethod.POST)

    @ResponseBody

    public Response addCollection(@RequestBody(required = true) Collection collection){

collectionService.addCollection(collection);

/* .... */  

    }


Javascript에서 아래와 같은 코드를 작성

    var collectionResource = $resource("$!{CONTEXT_ROOT}/collection/api/collection");

    /* ... */

    $scope.submit = function(){

        collectionResource.save (   {

            collId : collInfo.collId,

            name : collInfo.name,

            status : "OFF",

            planner : "loginuser"

         } , function(data){

            /* ... */

        });

    }


anguljarjs의 초보의 서비스 적용기는.. 힘들구나.

신고


티스토리 툴바