住房城乡建设厅网站准考证,温州 建网站的公司 新,个人网页设计作业,手机wordpress怎么保存图片大小Validation 官网 https://beanvalidation.org/ 常见注解 Bean Validation中定义的注解#xff1a;
注解详细信息Null被注释的元素必须为 nullNotNull被注释的元素必须不为 nullAssertTrue被注释的元素必须为 trueAssertFalse被注释的元素必须为 falseMin(value)被注释的元素… Validation 官网 https://beanvalidation.org/ 常见注解 Bean Validation中定义的注解
注解详细信息Null被注释的元素必须为 nullNotNull被注释的元素必须不为 nullAssertTrue被注释的元素必须为 trueAssertFalse被注释的元素必须为 falseMin(value)被注释的元素必须是一个数字其值必须大于等于指定的最小值Max(value)被注释的元素必须是一个数字其值必须小于等于指定的最大值DecimalMin(value)被注释的元素必须是一个数字其值必须大于等于指定的最小值DecimalMax(value)被注释的元素必须是一个数字其值必须小于等于指定的最大值Size(max, min)被注释的元素的大小必须在指定的范围内Digits (integer, fraction)被注释的元素必须是一个数字其值必须在可接受的范围内Past被注释的元素必须是一个过去的日期Future被注释的元素必须是一个将来的日期Pattern(value)被注释的元素必须符合指定的正则表达式
Hibernate validator 在JSR303的基础上对校验注解进行了扩展扩展注解如下
注解详细信息Email被注释的元素必须是电子邮箱地址Length被注释的字符串的大小必须在指定的范围内NotEmpty被注释的字符串的必须非空Range被注释的元素必须在合适的范围内 导包 您需要在 pom.xml 文件中添加以下依赖项
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId
/dependency实体类 您还需要使用验证注解来定义实体类。例如
Data
AllArgsConstructor
NoArgsConstructor
public class User {private String name;private Integer age;private String email;
}DTO 类 然后创建一个相应的 DTO 类并在其中使用验证注解比如 UserDTO
Data
AllArgsConstructor
NoArgsConstructor
public class UserDTO {NotBlank(message name不能为空或者空格)Size(min3, max9,message 长度在3-9之间)private String name;NotNull(message age不能为空)Max(value60,message 年龄最大60)Min(value18,message 年龄最小18)private Integer age;NotNullEmail(message 邮箱格式不正确)private String email;
}Controller控制器 在控制器中您可以使用 Validated 注解为请求体启用验证。例如
RestController
public class UserController {PostMapping(/add)public String add(Validated RequestBody UserDTO userDTO) {User user new User();BeanUtils.copyProperties(userDTO, user);return 注册成功;}
}全局异常配置类 要全局处理验证错误您可以使用 RestControllerAdvice 和 ExceptionHandler 注解创建一个全局异常处理器。例如
RestControllerAdvice
Component
public class GlobalExceptionHandler {ExceptionHandler(MethodArgumentNotValidException.class)public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {// 获取异常信息BindingResult bindingResult e.getBindingResult();ListObjectError allErrors bindingResult.getAllErrors();// 构建返回结果MapString, Object result new LinkedHashMap();result.put(code, 400);result.put(message, 参数校验失败);MapString, Object errors new LinkedHashMap();allErrors.forEach(error - errors.put(((FieldError) error).getField(), error.getDefaultMessage()));result.put(errors, errors);return result;}
}启动类 用来启动web项目
SpringBootApplication
public class ValidationApplication {public static void main(String[] args) {SpringApplication.run(ValidationApplication.class, args);}
} 启动项目 postman测试 用户名不合法 { name:,age:20,email:奇遇少年163.com
}年龄不合法 { name:奇遇少年,age:10,email:奇遇少年163.com
}邮箱格式不合法 { name:奇遇少年,age:20,email:奇遇少年
}数据正确注册成功 { name:奇遇少年,age:20,email:奇遇少年163.com
}