SpringBoot表单验证(注解验证)@Validated使用
程序员文章站
2023-12-21 15:53:34
...
SpringBoot注解验证参数
导入包:
import javax.validation.constraints
import org.springframework.validation.annotation
注解 | 作用类型 | 解释 |
---|---|---|
@NotNull | 任何类型 | 属性不能为null |
@NotEmpty | 集合 | 集合不能为null,且size大于0 |
@NotBlank | 字符串、字符 | 字符类不能为null,且去掉空格之后长度大于0 |
@AssertTrue | Boolean、boolean | 布尔属性必须是true |
@Min | 数字类型(原子和包装) | 限定数字的最小值(整型) |
@Max | 同@Min | 限定数字的最大值(整型) |
@DecimalMin | 同@Min | 限定数字的最小值(字符串,可以是小数) |
@DecimalMax | 同@Min | 限定数字的最大值(字符串,可以是小数) |
@Range | 数字类型(原子和包装) | 限定数字范围(长整型) |
@Length | 字符串 | 限定字符串长度 |
@Size | 集合 | 限定集合大小 |
@Past | 时间、日期 | 必须是一个过去的时间或日期 |
@Future | 时期、时间 | 必须是一个未来的时间或日期 |
字符串 | 必须是一个邮箱格式 | |
@Pattern | 字符串、字符 | 正则匹配字符串 |
以上注解用到要验证参数的封装类(实体类)中的属性上
public class Test {
@NotNull(message = "ID不能为空")
@Range(min = 1, max = 100, message = "ID必须在1到100之间")
private Integer id;
@NotBlank(message = "姓名不能为空")
@Length(min = 2, max = 6, message = "姓名必须在2到6位之间")
private String name;
@NotNull(message = "余额不能为空")
@DecimalMax(value = "30.50", message = "余额不能超过30.5")
@DecimalMin(value = "1.50", message = "余额不能低于1.5")
private BigDecimal amount;
@NotNull(message = "生日不能为空")
@Past(message = "生日必须是过去")
private Date birthday;
@NotBlank(message = "邮箱不能为空")
@Email(message = "邮箱格式不正确")
private String email;
@NotBlank(message = "手机号不能为空")
@Pattern(regexp = "^(((13[0-9])|(14[579])|(15([0-3]|[5-9]))|(16[6])|(17[0135678])|(18[0-9])|(19[89]))\\d{8})$", message = "手机号格式错误")
private String phone;
}
然后在controller的每个接口中使用@Validated和BindingResult类
@Validated注解用于验证一个入参,验证之后的消息绑定到BindingResult类中:
@PostMapping("/test")
@ApiOperation(value = "测试", notes = "", response = Result.class)
public Result test(@ApiParam(name = "test", value = "参数", required = true) @Validated @RequestBody Test test, BindingResult bindingResult) {
if(bindingResult.hasErrors()){
String errorMsg = bindingResult.getFieldError().getDefaultMessage();
return Result.error(errorMsg);
}
return Result.ok("参数验证通过");
}
推荐阅读
-
SpringBoot表单验证(注解验证)@Validated使用
-
使用vue自定义指令开发表单验证插件validate.js
-
vue.js表单验证插件(vee-validate)的使用教程详解
-
使用vue自定义指令开发表单验证插件validate.js
-
vue.js表单验证插件(vee-validate)的使用教程详解
-
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
-
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
-
jQuery.Validate表单验证插件的使用示例详解
-
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
-
jquery表单验证使用插件formValidator