浅谈@RequestParam(required = true)的误区
@RequestParam(required = true)的误区
先说结论
required = true是在前端没有传参数的时候报错,并不能防止参数为空。
考虑一下代码:
@GetMapping("/userInfo")
public void userInfo(@RequestParam(required = true) Integer id) {
...
}
如果请求如下就会报400错误:
http://localhost:8088/userInfo
但构造以下请求,可以使id为空:
http://localhost:8088/userInfo?id=
参数总结
required=true表示前端必须传参数。required=false表示前端不传参数的时候,会将参数置为null。因此假如参数是int这种不能赋值为null的类型,就可能会报错。
使用了defaultValue,required只能为false,前端不传参数时会将参数置为defaultValue。
@RequestParam(required=false int id)值不传报错
@RequestParam(required=false int id):required=false说明了可以不传值,如果是
// 注意现在是String类型的id @RequestParam(required=false Sting id)
这种不传值就不会报错
但如果是标题上写的int类型这种
@RequestParam(required=false int id)
就会报错,因为null不能赋给int。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Mybatis-plus实现主键自增和自动注入时间的示例代码
这篇文章主要介绍了Mybatis-plus实现主键自增和自动注入时间的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-07-07
SpringBoot HttpMessageConverter消息转换器的使用详解
在整个数据流转过程中,前端的请求报文转化为Java对象,Java对象转化为响应报文,这里就用到了消息转换器HttpMessageConverter2022-06-06
如何基于SpringSecurity的@PreAuthorize实现自定义权限校验方法
spring Security提供有若干个过滤器,它们能够拦截Servlet请求,并将这些请求转给认证和访问决策管理器处理,从而增强安全性,下面这篇文章主要给大家介绍了关于如何基于SpringSecurity的@PreAuthorize实现自定义权限校验方法的相关资料,需要的朋友可以参考下2023-03-03
Spring Security学习之rememberMe自动登录的实现
这篇文章主要给大家介绍了关于Spring Security学习之rememberMe自动登录的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2020-06-06


最新评论