@RequestBody
作用:
i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
使用时机:
A) GET、POST方式提时, 根据request header Content-Type的值来判断:
- application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
- multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
- 其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);
B) PUT方式提交时, 根据request header Content-Type的值来判断:
- application/x-www-form-urlencoded, 必须;
- multipart/form-data, 不能处理;
-
其他格式, 必须;
说明:request的body部分的数据编码格式由header部分的Content-Type指定;
@ResponseBody
作用:
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
例如:
function getStockList(type,pno){ $.ajax({ type: "post", url: "${contextPath}/stock/page", dataType: "json",//ResponseBody 返回的类型 contentType:"application/json",//RequestBody请求的类型 data: JSON.stringify(getParam(pno)), success: function(rs){ if(rs.status>0){ vm.datalist=rs.list; if(type==1){ generPageHtml(rs.currentPage,rs.totalPage,rs.total); } }else{ } }, error: function(XMLHttpRequest, textStatus, errorThrown){ } }); }
@ResponseBody @RequestMapping(value="/page" , method = RequestMethod.POST) public PageView pageStockPage(@RequestBody StockExt stockExt) {//声明为RequestBody int total = stockService.queryPageCount(stockExt); List<Stock> list=new ArrayList<Stock>(); List<StockVo> listVo=new ArrayList<StockVo>(); if (total > 0) { list=stockService.queryPage(stockExt); listVo = BeanConvertor.convert2StockVo(list);//转成vo集合传到页面上 } PageView pageView = buildSuccessResult(); pageView.setTotal(total); pageView.setList(listVo); return pageView; }
相关推荐
在Spring MVC框架中,`@RequestBody` 和 `@ResponseBody` 是两个非常重要的注解,它们在处理HTTP请求和响应时起到了关键作用。本篇文章将详细解释这两个注解的工作原理、使用场景以及如何实现Java对象与XML/JSON数据...
在实际开发中,`@RequestBody` 和 `@ResponseBody` 的组合使用使得Spring MVC能够轻松地处理RESTful API的请求和响应。它们简化了数据交换的过程,减少了手动序列化和反序列化的代码,提高了开发效率。通过理解这两...
Spring MVC打印@RequestBody、@Response日志的方法 Spring MVC框架提供了强大的日志记录功能,对于日志记录的实现,Spring MVC提供了多种方式,本文将主要介绍如何使用RequestBodyAdvisor和ResponseBodyAdvisor来...
总之,`@ResponseBody`、`@RequestBody`和`@PathVariable`是Spring MVC中不可或缺的三大注解,它们在构建RESTful服务时起着至关重要的作用。掌握它们的用法和工作原理,能够提升我们的开发效率,使我们更好地利用...
Spring MVC内部对@RequestBody的解析过程: 1. 首先,Spring MVC会根据HTTP请求头中的Content-Type类型选择合适的HttpMessageConverter。 2. 然后,Spring MVC会使用选择的HttpMessageConverter来将请求体中的数据...
当使用`@RequestBody`和`@ResponseBody`时,Spring会自动寻找合适的Converter进行数据转换。例如,对于JSON数据,Jackson或Gson库的Converter会被使用,将Java对象转换成JSON字符串,反之亦然。 示例代码: ```java...
当我们在控制器方法的参数前加上`@RequestBody`时,Spring MVC会尝试将请求体中的内容(通常是以JSON格式)转换为与参数类型匹配的对象。例如,在示例中,如果前端发送了一个嵌套的JSON对象,`@RequestBody Map, ...
Spring MVC注解之@ResponseBody和@RequestBody详解 在Spring MVC框架中,@ResponseBody和@RequestBody是两个非常重要的注解,它们分别用于处理HTTP请求响应体和请求体的序列化和反序列化。下面,我们将详细介绍这两...
在开发Web应用时,我们经常会遇到一个问题:当使用Spring MVC的`@ResponseBody`注解将后端处理结果直接转化为HTTP响应体时,如果这个结果中包含HTML特殊字符,如尖角号、引号、按位与符号等,浏览器可能会误解析,...
相比之下,`@RequestBody`注解用于方法的参数中,它指示Spring应该尝试从HTTP请求的主体中读取数据,并将其反序列化到指定的对象中。这样,你可以直接将请求体的数据绑定到方法参数上。在示例中,`login`方法接收一...
总结来说,`@RequestBody`是Spring MVC中处理POST请求JSON数据的关键工具。它可以将JSON字符串转换为Java对象,如直接转换为String,或者转换为Map以便处理动态结构的数据。为了确保正确运行,记得在项目中包含必要...
3. **Spring MVC与@RequestBody和@ResponseBody**: - **@RequestBody**:此注解用于控制器方法的参数,表示请求体中的内容应被转换为该参数的对象。Spring会使用合适的HttpMessageConverter(如Jackson的`...
### Spring MVC 中的 RequestBody 和 ResponseBody 及 RequestParam 使用详解 #### 一、Spring MVC 概述 Spring MVC 是 Spring Framework 的一部分,它提供了一种清晰的模型—视图—控制器架构实现,用于构建 Web ...
在Spring MVC中,`@RequestBody`和`@ResponseBody`两个注解是实现JSON交互的关键。`@RequestBody`注解用于读取HTTP请求的内容,通常是请求体中的JSON字符串。Spring MVC通过HttpMessageConverter接口将这个字符串...
在Spring MVC中,`@RequestBody`注解是用于将HTTP请求体中的数据转换为Java对象的,特别适用于处理JSON或XML格式的数据。当控制器方法接收POST、PUT等带有请求体的HTTP请求时,`@RequestBody`可以帮助我们将接收到的...
Controller接口或基于注解的控制器类(如@Controller)定义了业务逻辑处理方法,这些方法通常以@RequestBody和@ResponseBody注解来接收和返回数据。Model对象用于存储请求相关的数据,而View则负责渲染视图。...
标题中的“Spring MVC – Easy REST-Based JSON Services with @ResponseBody”是指使用Spring MVC框架构建基于REST的JSON服务,并通过使用`@ResponseBody`注解来简化这一过程。REST(Representational State ...
4. **控制器方法的编写**:在 Spring MVC 的控制器类中,我们可以定义处理 HTTP 请求的方法,并使用 `@RequestBody` 和 `@ResponseBody` 注解来接收和返回 JSON 数据。例如: ```java @RequestMapping(value = "/...
当控制器方法的参数带有`@RequestBody`时,Spring会查找合适的`HttpMessageConverter`来解析请求体的数据,将其转换成方法参数所期望的对象类型。`HttpMessageConverter`是Spring MVC中用于处理不同格式数据(如JSON...
本文将深入探讨Spring MVC如何支持Ajax以及相关的注解,如`@RequestBody`和`@ResponseBody`。 首先,`<mvc:annotation-driven/>`在Spring配置文件中是一个重要的元素,它告诉Spring启用注解驱动,自动注册一些关键...