使用Hibernate-Validate进行参数校验

简介: 使用Hibernate-Validate进行参数校验
  1. 在实体属性中添加注解
    @NotNull : 用在基本类 型上 不能为null 但可以为空字符串
    @NotEmpty : 用在集合类上 不能为空 并且长度必须大于0
    @NotBlank : 只能作用在String上,不能为null,而且调用trim()后,长度必须大于0
    @Length:表示长度
    @Pattern:表示正则表达式
    @Email:表示邮箱格式
    @Min:最小值
    @Max:最大值 更多注解看后面
@NotBlank(message = "项目不能为空")
  @Length(max = 12, message = "用户真实姓名不能超过12位")
  @Length(min = 11, max = 11, message = "手机号长度不正确")
  @Email
  @Min(value = 0, message = "最小值为0")
  @Max(value = 2, message = "最大值为2")
  @ApiModelProperty(value = "项目id")
  @TableField("PROJECT_ID")
  private String projectId;
    
    @NotBlank(message = "手机号不能为空")
    @Pattern(regexp = "^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\\d{8})$", message = "手机号格式不正确")
    private String mobile;
   
    @NotBlank(message = "验证码不能为空")
    private String smsCode;
  1. Controller中请求实体添加@Valid注解
@PostMapping("login")
    public GraceJSONResult login(@Valid @RequestBody RegistLoginBO registLoginBO,
                                      HttpServletRequest request) throws Exception {
  1. 全局异常捕获处理类中添加处理逻辑
@ExceptionHandler(MethodArgumentNotValidException.class)
    @ResponseBody
    public GraceJSONResult returnNotValidException(MethodArgumentNotValidException e) {
        BindingResult result = e.getBindingResult();
        Map<String, String> errors = getErrors(result);
        return GraceJSONResult.errorMap(errors);
    }
    public Map<String, String> getErrors(BindingResult result) {
        Map<String, String> map = new HashMap<>();
        List<FieldError> errorList = result.getFieldErrors();
        for (FieldError fe : errorList) {
            // 错误所对应的属性字段名
            String field = fe.getField();
            // 错误信息
            String message = fe.getDefaultMessage();
            map.put(field, message);
        }
        return map;
    }
目录
相关文章
|
7月前
|
Java 数据库连接
后端校验(hibernate-validator)
后端校验(hibernate-validator)
191 0
|
Java 数据库连接
hibernate-validator校验对象属性为List
hibernate-validator校验对象属性为List
204 1
|
前端开发 Java 数据库连接
Hibernate Validator -- 伟大的校验器
validator Engine 是支持Javax.validator 的接口的实现, 并且可以通过一些简单的标注的形式(annotation形式)实现一个校验的形式, 它其实也是一个约定大于执行的过程
170 0
|
JSON Java 数据格式
hibernate-validator校验参数(统一异常处理)(下)
hibernate-validator校验参数(统一异常处理)
hibernate-validator校验参数(统一异常处理)(下)
|
Oracle Java 关系型数据库
hibernate-validator校验参数(统一异常处理)(上)
hibernate-validator校验参数(统一异常处理)
hibernate-validator校验参数(统一异常处理)(上)
|
Java 数据库连接
[原创]自定义Hibernate Validator校验注解
[原创]自定义Hibernate Validator校验注解
[原创]自定义Hibernate Validator校验注解
|
Java 数据库连接
SpringBoot 2.0参数校验Hibernate Validator
SpringBoot 2.0参数校验Hibernate Validator
SpringBoot 2.0参数校验Hibernate Validator
Springboot使用hibernate-validator实现参数校验
Springboot使用hibernate-validator实现参数校验
264 0
Springboot使用hibernate-validator实现参数校验
|
Java 数据库连接 程序员
SpringBoot 2.0参数校验Hibernate Validator
Spring Boot (v2.0.5.RELEASE)Hibernate Validator springboot起步依赖自动添加了对hibernate validator的依赖 hibernate validator依赖 或者也可以自己手动添加依赖 org.
4315 0
|
Java 数据库连接 API
springboot使用hibernate validator校验
在做web相关的应用时,经常需要提供接口与用户交互(获取数据、上传数据等),由于这个过程需要用户进行相关的操作,为了避免出现一些错误的数据等,一般需要对数据进行校验,随着接口的增多,校验逻辑的冗余度也越来越大,虽然可以通过抽象出校验的方法来处理,但还是需要每次手动调用校验逻辑,相对来说还是不方便。
3656 0