`
qieyi28
  • 浏览: 158212 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring MVC之@RequestBody, @ResponseBody 使用方法

阅读更多

@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;
	}

 

分享到:
评论

相关推荐

    SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)

    在Spring MVC框架中,`@RequestBody` 和 `@ResponseBody` 是两个非常重要的注解,它们在处理HTTP请求和响应时起到了关键作用。本篇文章将详细解释这两个注解的工作原理、使用场景以及如何实现Java对象与XML/JSON数据...

    SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)

    在实际开发中,`@RequestBody` 和 `@ResponseBody` 的组合使用使得Spring MVC能够轻松地处理RESTful API的请求和响应。它们简化了数据交换的过程,减少了手动序列化和反序列化的代码,提高了开发效率。通过理解这两...

    Spring MVC打印@RequestBody、@Response日志的方法

    Spring MVC打印@RequestBody、@Response日志的方法 Spring MVC框架提供了强大的日志记录功能,对于日志记录的实现,Spring MVC提供了多种方式,本文将主要介绍如何使用RequestBodyAdvisor和ResponseBodyAdvisor来...

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

    总之,`@ResponseBody`、`@RequestBody`和`@PathVariable`是Spring MVC中不可或缺的三大注解,它们在构建RESTful服务时起着至关重要的作用。掌握它们的用法和工作原理,能够提升我们的开发效率,使我们更好地利用...

    浅析@ReponseBody和@RequestBody注解

    Spring MVC内部对@RequestBody的解析过程: 1. 首先,Spring MVC会根据HTTP请求头中的Content-Type类型选择合适的HttpMessageConverter。 2. 然后,Spring MVC会使用选择的HttpMessageConverter来将请求体中的数据...

    Spring MVC之@RequestMapping详解

    当使用`@RequestBody`和`@ResponseBody`时,Spring会自动寻找合适的Converter进行数据转换。例如,对于JSON数据,Jackson或Gson库的Converter会被使用,将Java对象转换成JSON字符串,反之亦然。 示例代码: ```java...

    springMvc注解之 ResponseBody和 RequestBody.docx

    当我们在控制器方法的参数前加上`@RequestBody`时,Spring MVC会尝试将请求体中的内容(通常是以JSON格式)转换为与参数类型匹配的对象。例如,在示例中,如果前端发送了一个嵌套的JSON对象,`@RequestBody Map, ...

    springMvc注解之@ResponseBody和@RequestBody详解

    Spring MVC注解之@ResponseBody和@RequestBody详解 在Spring MVC框架中,@ResponseBody和@RequestBody是两个非常重要的注解,它们分别用于处理HTTP请求响应体和请求体的序列化和反序列化。下面,我们将详细介绍这两...

    彻底根治Spring @ResponseBody JavaScript HTML特殊字符

    在开发Web应用时,我们经常会遇到一个问题:当使用Spring MVC的`@ResponseBody`注解将后端处理结果直接转化为HTTP响应体时,如果这个结果中包含HTML特殊字符,如尖角号、引号、按位与符号等,浏览器可能会误解析,...

    @ResponseBody 和 @RequestBody 注解的区别

    相比之下,`@RequestBody`注解用于方法的参数中,它指示Spring应该尝试从HTTP请求的主体中读取数据,并将其反序列化到指定的对象中。这样,你可以直接将请求体的数据绑定到方法参数上。在示例中,`login`方法接收一...

    详解使用@RequestBody取POST方式的json字符串

    总结来说,`@RequestBody`是Spring MVC中处理POST请求JSON数据的关键工具。它可以将JSON字符串转换为Java对象,如直接转换为String,或者转换为Map以便处理动态结构的数据。为了确保正确运行,记得在项目中包含必要...

    最新版本 jackson 2.8.2 jar与spring 4.x @ResponseBody配合使用

    3. **Spring MVC与@RequestBody和@ResponseBody**: - **@RequestBody**:此注解用于控制器方法的参数,表示请求体中的内容应被转换为该参数的对象。Spring会使用合适的HttpMessageConverter(如Jackson的`...

    springMVC的 RequestBody和 ResponseBody和RequestParam.docx

    ### Spring MVC 中的 RequestBody 和 ResponseBody 及 RequestParam 使用详解 #### 一、Spring MVC 概述 Spring MVC 是 Spring Framework 的一部分,它提供了一种清晰的模型—视图—控制器架构实现,用于构建 Web ...

    springmvc实现json交互-requestBody和responseBody

    在Spring MVC中,`@RequestBody`和`@ResponseBody`两个注解是实现JSON交互的关键。`@RequestBody`注解用于读取HTTP请求的内容,通常是请求体中的JSON字符串。Spring MVC通过HttpMessageConverter接口将这个字符串...

    SpringMVC restful 注解之@RequestBody进行json与object转换

    在Spring MVC中,`@RequestBody`注解是用于将HTTP请求体中的数据转换为Java对象的,特别适用于处理JSON或XML格式的数据。当控制器方法接收POST、PUT等带有请求体的HTTP请求时,`@RequestBody`可以帮助我们将接收到的...

    spring MVC文档

    Controller接口或基于注解的控制器类(如@Controller)定义了业务逻辑处理方法,这些方法通常以@RequestBody和@ResponseBody注解来接收和返回数据。Model对象用于存储请求相关的数据,而View则负责渲染视图。...

    Spring MVC – Easy REST-Based JSON Services with @ResponseBody

    标题中的“Spring MVC – Easy REST-Based JSON Services with @ResponseBody”是指使用Spring MVC框架构建基于REST的JSON服务,并通过使用`@ResponseBody`注解来简化这一过程。REST(Representational State ...

    spring mvc(整合了json)

    4. **控制器方法的编写**:在 Spring MVC 的控制器类中,我们可以定义处理 HTTP 请求的方法,并使用 `@RequestBody` 和 `@ResponseBody` 注解来接收和返回 JSON 数据。例如: ```java @RequestMapping(value = "/...

    @Response和@Request

    当控制器方法的参数带有`@RequestBody`时,Spring会查找合适的`HttpMessageConverter`来解析请求体的数据,将其转换成方法参数所期望的对象类型。`HttpMessageConverter`是Spring MVC中用于处理不同格式数据(如JSON...

    7-Spring-mvc-ajax支持1

    本文将深入探讨Spring MVC如何支持Ajax以及相关的注解,如`@RequestBody`和`@ResponseBody`。 首先,`&lt;mvc:annotation-driven/&gt;`在Spring配置文件中是一个重要的元素,它告诉Spring启用注解驱动,自动注册一些关键...

Global site tag (gtag.js) - Google Analytics