今天在用@RequestParam(required=false) int XXX 取参数的时候,当参数没有的时候Spring默认赋值为空。而此时使用基本类型int,所以报错,建议使用包装类 Integer。 参考:https://blog.csdn.net/Hello_l/article/details/50402157
众所周知,使用@RequestParam(required = false)封装请求参数的时候,如果客户端不提交参数,或者是只声明参数,并不赋值。那么方法的形参值,默认为null(基本数据类型除外)。 一个Controller方法,有2个参数 @GetMappingpublicObjectupdate(@RequestParam(value="number",required=false)Integer number,@RequestParam(value="phon...
今天在用@RequestParam(required=false) int XXX 取参数的时候,当参数没有的时候Spring默认赋值为空。而此时使用基本类型int,所以报错,建议使用包装类 Integer。
不传值后台也不会报错,但是如果@requestparam( required = false)的括号中指定了基本数据类型,例如(@requestparam(value = 'num' required = false) int num) 这个时候如果不传值是会报错的,因为不传值就赋null,但是int类型不能为null,解决办法,修改成Integer即可...
3、如果用@RequestMapping注解的参数是int基本类型,但是required=false,这时如果不传参数值会报错,因为不传值,会赋值为null给int,这个不可以 解决方法: “Consider declaring it as object wrapper for the corresponding primitive type.”建议使用包装类型代替基本类型,如使用“Integer”代替“int”...
RequestParam(value = "pageNum", required = false) Integer pageNum)value 是传参;required 是否一定要有这个值,true是一定有,可以省略,false是不一定要有
required = true是在前端没有传参数的时候报错,并不能防止参数为空。 考虑一下代码: @GetMapping("/userInfo") public void userInfo(@RequestParam(required = true) Integer id) { ... } 如果请求如下就会报400错误: http://localhost:8088/userInfo ...
第一种处理方式(如上图):defaultValue请求参数的默认值,一般和 requiredjuTll = false 一起使用 第二种处理方式:接收的参数如果是null的话,int就要改为Integer,Integer默认值为null @RequestMapping(value = "/test") public String test(@RequestParam(
@RequestParam(required = false) Integer age ) { // 根据用户名和年龄查询用户列表 List<User> users = userService.searchUsers(username, age); return new ResponseEntity<>(users, HttpStatus.OK); } } 1. 2. 3. 4. 5. 6. 7. 8.
第二种处理方式:接收的参数如果是null的话,int就要改为Integer,Integer默认值为null @RequestMapping(value = “/test”) public String test(@RequestParam( @RequestParam(value = “profit”,required = false) Integer profit){ System.out.println(“profit:”+profit); return “success”; }...