Spring MVC之@RequestBody, @ResponseBody 详解

@RequestBody

作用

 i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

 ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

 

使用时机:

 

A) GET、POST方式提时, 根据request header Content-Type的值来判断:

  •     application/x-www-form-urlencoded(jquery ajax默认类型), 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
    默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.
  •     multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
  •     其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);                                                               参考http://bbs.csdn.net/topics/390897369                   http://www.cnblogs.com/Benjamin/archive/2013/09/11/3314576.html  

 

    @RequestMapping("getAllNews")
    @ResponseBody
    public String getAllNews(HttpServletRequest request, HttpServletResponse response){
        String findName = request.getParameter("name");

 }

    $.ajax({
        type : "post", // 以post方式與後臺溝通
        async : false, // 同步
        url : "getAllNews.action",
        data: "name="+findNews,
        success : function(data) {
            $("#newsdiv").html("");
            $("#newsdiv").html(data);
        }可以

 

    $.ajax({
        type : "post", // 以post方式與後臺溝通
        async : false, // 同步
        url : "getAllNews.action",
        contentType:"application/json",
        data: "name="+findNews,
        success : function(data) {
            $("#newsdiv").html("");
            $("#newsdiv").html(data);
        }不可以

 

@ResponseBody

 

作用:

 

      该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

 

使用时机:

 

      返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

-------------------------------------------------------------------------------------------------------------------------------------------------

 

Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable

 

原文链接    http://snowolf.iteye.com/blog/1628861

-------------------------------------------------------------------------------------------------------------------------------------------------

 

posted @ 2015-07-30 15:48  喝酒骑驴撞城管  阅读(194)  评论(0编辑  收藏  举报