0


Postman传递@requestbody标注的List集合的传参遇到的问题

Postman传递@requestbody标注的List集合的传参遇到的问题

引子

我们想测试如下接口

@RequestMapping(value ="saveMessageRecover", method =RequestMethod.POST)@ResponseBodypublicAjaxMessagesaveMessageRecover(@RequestBodyList<Device> deviceList,@RequestParam("eventId")Long eventId,@RequestParam("tagValue")String tagValue){System.out.println(deviceList.toString());return emergencyDeviceRecoverService.saveMessageRecover(deviceList, eventId, tagValue);}

如何测试以及遇到的问题

@RequestMapping(value ="saveMessageRecover", method =RequestMethod.POST)@ResponseBodypublicAjaxMessagesave(@RequestBodyList<Device> deviceList,@RequestParam("eventId")Long eventId,@RequestParam("tagValue")String tagValue){return emergencyDeviceRecoverService.saveMessageRecover(list, eventId, tagValue);}

在这里插入图片描述

这里对应了三个传入参数,因为deviceList是必须的,Device作为我们自己封装的JavaBean,我们想要直接传参的话,前端传递一个List过来,这个是被@Requestbody修饰的,同时还存在两个由@RequestParam修饰的包装类,因此,

@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

  1. 为什么要使用@RequestBody,直接传不行吗?当前端传来的是一个完整对象的时候,而且是以 json格式传输,只有加上注解@RequestBody,Spring 才会自动将 JSON 类型数据与我们的类进行匹配
  2. 返回给前端的是否为JSON类型?

使用@RestController注解或者@Controller+@Responbody注解

  1. postman如何传入list类型的参数?

在这里插入图片描述

我们遇到的问题?

  • 一开始总是使用大括号包围这个Bean,实际上传入一个list不需要如此。
  • 不确定如何传入一个@RequestBody和多个@RequestParam时,如何使用postman测试

如果想直接传一个list的对象集合,则不需要大括号;

如果是

public JSONObject updateProductStatus(@RequestParam(value = "ids",required = false) List<Integer> ids){

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文献

  • postman入门学习 链接: postman入门学习
  • SpringMVC参数绑定学习总结【前后端数据参数传递】 链接: SpringMVC
  • @RequestBody的使用 链接: RequestBody
  • @RequestBody和@RequestParam区别全面详细 链接: RequestParam
  • Postman测试接口传入List类型的参数以及数组类型参数 链接: Postman
  • 前后端交互--------后端传JSON给前端 链接: JSON
标签: postman list java

本文转载自: https://blog.csdn.net/futurn_hero/article/details/130828067
版权归原作者 是一个Bug 所有, 如有侵权,请联系我们删除。

“Postman传递@requestbody标注的List集合的传参遇到的问题”的评论:

还没有评论