@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)。