zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Hamming Distance
    变量
    Jupyter Notebook 快捷键使用指南
    XPath使用总结
    selenium调用webdriver异常
    漏洞挖掘 | 远程WWW服务支持TRACE请求
    漏洞挖掘 | 点击劫持
    漏洞挖掘 | 目录浏览漏洞
    漏洞挖掘 | 弱口令漏洞
    浅谈Linux下/etc/passwd文件
  • 原文地址:https://www.cnblogs.com/super-chao/p/15314648.html
Copyright © 2011-2022 走看看