@RequestBody 和 @RequestParam
1.@RequestParam(可以有多个)
可以接收单个参数传递(必须有对应的名字)
@ApiOperation("transmit")
@PostMapping("/transmit")
public Result transmit(@RequestParam(required = false) @ApiParam(value = "id")String id
,@ApiParam(value = "用户id") @RequestParam(required = true) Long userId) {
//根据userId查询用户
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = format.format(new Date());
User user = userService.findById(userId);
if(StringUtils.isEmpty(id)){
return ResultGenerator.genFailResult("id不能为空");
return ResultGenerator.genSuccessResult(1);
2.@RequestBody (一次请求只能有一个)
接收对象类型参数
前端参数需要放在Body中,不然接收不到
@ApiOperation("transmit")
@PostMapping("/transmit")
public Result transmit(@Valid @RequestBody Transmit transmit) {
//根据userId查询用户
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = format.format(new Date());
return ResultGenerator.genSuccessResult(1);
前端参数放在body中区别对比图
@RequestBody 和 @RequestParam1.@RequestParam(可以有多个)可以接收单个参数传递(必须有对应的名字)@ApiOperation("transmit") @PostMapping("/transmit") public Result transmit(@RequestParam(required = false) @ApiParam(value = "id")String id ,@ApiParam(value = ...
我们在开发中经常会用到 @PostMapping、@GetMapping、@RequestParam、@RequestBody、@PathVariable;
但是我们得注意使用情况:
@GetMapping 配合 @RequestParam、@RequestBody、@PathVariable;
@PostMapping 配合 @RequestBody (使用@RequestParam很有可能debug失效或者获取不到参数数据)
@RequestParam:对包装类,基本类型,String等通过属性va
在SpringBoot项目中,除非传输数据量较大或者特殊要求,一般情况下增删改使用Post,查使用Get。相对应与@PostMapping和@GetMapping两个注解。那么这两个注解究竟有什么区别呢?
@GetMapping用于将HTTP get请求映射到特定处理程序的方法注解
具体来说,@GetMapping是一个组合注解,是@RequestMapping(method = Reques...
前阵子
开发程序的时候,由于公司用的不是 restful 风格的 api,同事问我根据id删除记录的接口,controller 层
参数绑定要怎么写的问题,几番讨论下来,总结了几个方法
使用Map
接收参数
@
PostMapping("/delete")
public ApiResponse delete(@RequestBody Map<String,String> params){
(1)@GetMapping只能通过url传参数。所对应的接口参数只能是用@RequestParam注解或者不注解
(2)@PostMapping既可以通过url传参数,也可以通过body传json参数。所对应的接口参数可以有@RequestParam注解,也可以有@RequestBody注解,也可以没有注解。
(3)不管是@GetMapping还是@PostMapping,除了@RequestBody注解对应的参数是通过json在body里面传参数外,@RequestParam注解和没有注解都是在ur
首先要了解一下@RequestMapping注解。
@RequestMapping用于映射url到控制器类的一个特定处理程序方法。可用于方法或者类上面。也就是可以通过url找到对应的方法。
@RequestMapping有8个属性。
value:指定请求的实际地址。
method:指定请求的method类型(GET,POST,PUT,DELETE)等。
consumes...
接收的
参数是来自requestBody中,即请求体。
一般用于处理非Content-Type: application/x-www-form-urlencoded编码格式的数据,
比如:application/json、application/xml等类型的数据。就application/json类型的数据而言,
使用注解@RequestBody可以将body里面所有的json数据传到
后端,
后端再进行解析。
GET请求中,因为没有HttpEntity,所以@RequestB.
1. 在URL中通过?传递参数,例如:/user?id=123&name=Tom
2. 在URL中通过/传递参数,例如:/user/123
3. 使用@RequestParam注解接收参数,例如:/user?name=Tom
@PostMapping接收参数的格式:
1. 使用@RequestBody注解接收一个JSON对象,例如:{"id":123,"name":"Tom"}
2. 使用@RequestParam注解接收参数,例如:/user?name=Tom
需要注意的是,@RequestParam注解默认情况下参数是必须的,如果不传递参数会报错。如果想要参数可选,可以设置@RequestParam(required=false)。