@RequestParam
带@RequestParam时如果前端没有传递参数,会报出一个异常警告提示,所以携带@RequestParam时参数是必传的
@GetMapping("/requestParm")
public R requestParm(@RequestParam Integer id){
System.out.println("get带@RequestParam:"+id);
return R.success(id);
}
异常提示:MissingServletRequestParameterException: Required request parameter 'id' for method parameter type Integer is not presen
不带@RequestParam时不管传不传参数,后端都不会报错,此时答应id的结果为null
@GetMapping("/requestParm")
public R requestParm(Integer id){
System.out.println("get不带@RequestParam:"+id);
return R.success(id);
}
实体类带上@RequestParam接收参数
同理,带上@RequestParam时,后端也是报了一个异常警告,接口状态码为400
@GetMapping("/requestParm")
public R requestParm(@RequestParam User user){
System.out.println("get带@RequestParam:"+user.getId());
return R.success(user);
}
实体类不带@RequestParam接收参数
接口没有报错,获取到的id参数为null
@GetMapping("/requestParm")
public R requestParm(User user){
System.out.println("get不带@RequestParam:"+user.getId());
return R.success(user);
}
总结:
1.用实体类接收参数时不能带上@RequestParam,否者接口会报错
2.如果是单个参数时,带上@RequestParam时前端不传参数就会报错,所以建议是不要带上@RequestParam,这样后端可以判断参数,如果参数必填的话应该是提示前端必传参数,而不是接口报错
所以不管是当个参数还是实体类接收参数,,可以都不要带上@RequestParam 。。。