• javax.validation分组校验(简短版)


    javax.validation注解校验:我们使用的实体,有时候需要全部校验它的字段,有时候其他地方使用只需要校验它的部分字段。

    解决办法:使用分组校验。

    /**
         * 用户名
         */
        @NotBlank(message = "用户名不能为空!",groups = Group.AddGroup.class)
        private String userName;
    
        /**
         * 密码
         */
        @NotBlank(message = "密码不能为空!")
        private String password;

    1.新增的时候我需要全部校验字段(userName,password都校验):

    @RequestBody @Validated({Default.class, Group.AddGroup.class}) UserEntity userEntity, BindingResult bindingResult

    或者

    private BaseResponse validateParam(UserEntity userEntity) {
            List<String> validateError = ValidationUtil.validate(userEntity, Default.class, Group.AddGroup.class);//Default.class, Group.AddGroup.class
            if (validateError != null && validateError.size() > 0) { // validateError.get(0)
                return BaseResponse.failedCustom(validateError.get(0)).build();
            }
            return BaseResponse.successCustom().build();
        }

    2.其他地方使用我只需要校验部分字段(只校验password字段,属于默认分组Default):

    @RequestBody @Validated({Default.class}) UserEntity userEntity, BindingResult bindingResult

    或者

    private BaseResponse validateParam(UserEntity userEntity) {
            List<String> validateError = ValidationUtil.validate(userEntity, Default.class);//Default.class, Group.AddGroup.class
            if (validateError != null && validateError.size() > 0) { // validateError.get(0)
                return BaseResponse.failedCustom(validateError.get(0)).build();
            }
            return BaseResponse.successCustom().build();
        }

    3.只校验userName字段,属于分组AddGroup:

    @RequestBody @Validated({Group.AddGroup.class}) UserEntity userEntity, BindingResult bindingResult

    或者

    private BaseResponse validateParam(UserEntity userEntity) {
            List<String> validateError = ValidationUtil.validate(userEntity,Group.AddGroup.class);//Default.class, Group.AddGroup.class
            if (validateError != null && validateError.size() > 0) { // validateError.get(0)
                return BaseResponse.failedCustom(validateError.get(0)).build();
            }
            return BaseResponse.successCustom().build();
        }

    userName属于AddGroup分组,password属于Default默认分组(没有添加自定义分组的字段都默认为Default分组)。它们属于不同分组。校验的时候选择不同分组,只会校验选择的分组的字段。

    详解版参考:https://www.cnblogs.com/super-chao/p/15314566.html

  • 相关阅读:
    Redis主从复制及主从复制的注意事项
    Redis哨兵(Sentinel)
    Redis慢查询日志(slowlog)
    Memcached缓存雪崩现象
    PHP添加Memcached扩展
    Redis节省空间
    Memcached遇到的问题及解决办法
    C++ explicit关键字学习
    力扣:排序之topK||Kth元素的问题
    软聚类
  • 原文地址:https://www.cnblogs.com/super-chao/p/15314648.html
Copyright © 2020-2023  润新知