Skip to content

后端开发 后端参数验证

李昌文 edited this page Nov 11, 2018 · 2 revisions

后端参数验证

验证Rest参数

  1. 在Controller上面添加注解 @Validated
  2. 在方法上面需要验证的参数上添加验证注解 @NotBlank(message = "退回理由不能为空")
  3. 示例:
	@PutMapping("/{userId}")
	public ResponseMessage test(@PathVariable("userId") String userId, @NotBlank(message = "理由不能为空") String auditRemark) {
	    return Result.success();
	}

常用验证注解

这里给出一些校验的注解,更多验证注解请参考hibernate-validate:

注解 含义
@Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@AssertTrue 被注释的元素必须为 true
@AssertFalse 被注释的元素必须为false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max=, min=) 被注释的元素的大小必须在指定的范围内
@Digits (integer,fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式 Hibernate Validator附加的constraint
@NotBlank(message =) 验证字符串非null,且长度必须大于0
@Email 被注释的元素必须是电子邮箱地址
@Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须非空
@Range(min=,max=,message=) 被注释的元素必须在合适的范围内

验证异常处理

后端验证抛出失败抛出ConstraintViolationException,由NotValidExceptionAdvice拦截到异常,将验证失败的信息转换为统一的格式返回给前端处理