后端@RequestParam注解修饰参数加与不加的区别

编程

@RequestMapping("/list")

public String test(int userId) {

  return "list";

}

@RequestMapping("/list")

public String test(@RequestParam int userId) {

  return "list";

}

第一种 可带参数也可不带参数  就是说你输入  localhost:8080/list  以及 localhost:8080/list?userId=?  方法都能执行

第二种必须带有参数,也就是说你直接输入localhost:8080/list 会报错 不会执行方法 只能输入localhost:8080/list?userId=? 才能执行相应的方法,第二种也是设置不同带参数,使用required=false来设置。

2.区别

第一种写法前端的参数名需要和后端控制器的变量名保持一致才能生效。

第一种写法参数为非必传,第二种写法参数为必传。参数名为userId。

第二种写法可以通过@RequestParam(required = false)设置为非必传。因为required值默认是true,所以默认必传。

第二种写法可以通过@RequestParam("userId")或者@RequestParam(value = "userId")指定参数名。

第二种写法可以通过@RequestParam(defaultValue = "0")指定参数默认值

具体的用法:

@RequestMapping("/list")

public String test(@RequestParam(value = "userId", defaultValue = "0", required = false) int userId) {

  return "list";

}

 

以上是 后端@RequestParam注解修饰参数加与不加的区别 的全部内容, 来源链接: utcz.com/z/514979.html

回到顶部