@RequestParam到底是加还是不加呢

我们在学习的过程中会发现有时候不加@RequestParam也没有关系,照样可以获取到前端传过来的参数,加上了似乎也没啥用,那么到底加不加呢。下面实验一下不加的时候和加的时候有啥区别,相信就明白了到底用不用加。

不加的时候

@GetMapping("/request")
@ResponseBody
 public String test01(String name){
     String returnValue = "返回的字符串为:"+name;
     return returnValue;
 }

分三种请求:

①不带参数直接请求

在这里插入图片描述
返回null

②带正确参数请求

在这里插入图片描述
返回我们发送的参数对应的值。

③带错误参数(参数名不一致)

在这里插入图片描述
还是返回null,后台对我们传过来的参数名不一致也是认为我们没有传参的,这和Java的通过类型来判断是不一样的。


加上

@GetMapping("/request")
@ResponseBody
public String test01(@RequestParam(value = "haha") String name){
    String returnValue = "返回的字符串为:"+name;
    return returnValue;
}

还是分三种情形来分析,注意上面的参数名不一致,一个是haha,一个是name

①不带参数

在这里插入图片描述
前端已经报错,后台一切正常。为什么呢?
@RequestParam(required = false)还有一个参数required,默认为true,要求我们必须传参数。设置为false之后,效果如下:
在这里插入图片描述

②传的参数名为haha

在这里插入图片描述
后台接收到了参数,并正常返回。

③传的参数名为name

在这里插入图片描述
后台没有接收到参数。


通过分析得出如下结论:

  • @RequestParam默认要求必须传参,可以通过设置required = false来关闭
  • 如果为@RequestParam设置参数名,以他为准,不设置的话默认为其后的类型参数名
发布了141 篇原创文章 · 获赞 131 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_41621362/article/details/105284059
今日推荐