Java Springboot 中如何校验前端参数?
首先我们来了解一下 validator注解:
注解功能:
@AssertFalse 可以为null,如果不为null的话必须为false
@AssertTrue 可以为null,如果不为null的话必须为true
@DecimalMax 设置不能超过最大值
@DecimalMin 设置不能超过最小值
@Digits 设置必须是数字且数字整数的位数和小数的位数必须在指定范围内
@Future 日期必须在当前日期的未来
@Past 日期必须在当前日期的过去
@Max 最大不得超过此最大值
@Min 最大不得小于此最小值
@NotNull 不能为null,可以是空
@Null 必须为null
@Pattern 必须满足指定的正则表达式
@Size 集合、数组、map等的size()值必须在指定范围内
@Email 必须是email格式(regexp=正则表达式,flag=标志的模式)
@Length() 长度必须在指定范围内(min=下限, max=上限)
@NotBlank 字符串不能为null,字符串trim()后也不能等于“”
@NotEmpty 不能为null,集合、数组、map等size()不能为0;字符串trim()后可以等于“”
@Range 值必须在指定范围内
@URL 必须是一个URL
@Past (日期类型)比当前时间早
@Future (日期类型)比当前时间晚
@Range() 最小值和最大值之间(min=最小值, max=最大值)
@PutMapping ("valid") @ResponseBody public Map<String,Object> queryStudentvalid(@Valid Student student){ Map<String,Object> map=new HashMap<>(); studentService.queryStudentUpdate(student); map.put("code",200); map.put("msg","修改用户信息成功"); return map; }
Student 实体类 代码如下:(实体名称上面加入对应的注解即可)
@NotBlank(message = "用户不能为空") private String name; @NotBlank(message = "邮箱不能为空") @Email(message = "邮箱格式错误") private String email; @Range(min = 18,max = 100,message = "年龄错误!") private Integer age=0;
如何去捕获异常呢 写一个全局的异常捕获 (BindException )即可
访问效果如下:
这就证明我们验证的参数已经生效啦!!
总结
感谢各位博友的阅读 ,欢迎您们提出意见 让我们一起交流。感谢你们对CYBLOG的支持理解,本次讲解到此结束!