Spring,MyBatis 실무 과정 자료] JSON/XML 데이터 송수신2





Spring,MyBatis 실무 과정 자료] JSON/XML 데이터 송수신2


실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


JSON/XML 데이터 송수신2


■ 서버에서 JSON데이터 출력

  - 컨트롤러 소스

@Controller

public class JsonController {

    

    @RequestMapping(value="/ajax/jsonOut1", method={RequestMethod.GET, RequestMethod.POST})

    //@RequestMapping(value="/ajax/jsonOut1", headers="Accept=application/json")

    //@RequestMapping(value="/ajax/jsonOut1", produces="application/json")

//미디어타입을 명시적으로 지정

//“produces”는 Spring 3.1부터 이용 가능

    @ResponseBody     public List<UserInfoViewDto> jsonOut (@RequestParam String cd) {

        

        if(StringUtils.isEmpty(departmentCd)) {

            return new ArrayList<UserInfoViewDto>();

        }

        

        List<UserInfoDto> list = /* Servlet/DAO로부터 취득함 */;

//리턴값 Java객체는 자동적으로 JSON으로 변경 가능함.

        return list;         

    }

}



■ 클라이언트: jquery 이용


<script type="text/javascript">

$(document).ready(function(){

    $('#jsonOut1').click(function(){

        $.ajax({

            type: "POST",

            url : "${appUrl}/ajax/jsonOut1.html",

            data : {"cd": "sawon"},

            // 수신시(응답)의 미디어타입

            dataType: "json",

            success:function(data){

                //TODO:

                alert(data);

            }

        });

    });

});

</script>

<ol>

    <li> <a href="${appUrl}/ajax/jsonOut1.html?cd=aaa">JSON형식으로 취득(GET사용)</a></li>

    <li> <span id="jsonOut1">JSON형식으로 취득(jQuery사용)</span></li>

</ol>




■ 클라이언트에서 데이터 송신시 처리(서버 수신)


@Controller public class JsonController {

 

    @RequestMapping(value="/ajax/jsonIn1")

    //@RequestMapping(value="/ajax/jsonIn1", headers="Content-Type=application/json")

    //@RequestMapping(value="/ajax/jsonIn1", consumes="application/json")

    public ModelAndView jsonIn1(@RequestBody JsonSampleCommand1 command) {

        

        ModelAndView mav = new ModelAndView("/ajax/sample1");

        mav.addObject("data", command);

        return mav;

    }

}


+ Recent posts