zoukankan      html  css  js  c++  java
  • 解决验证注解随机问题

    如  password是自定义注解

    @Data
    public class Text {
        @NotBlank
        @Password(type = "1",message = "不存在")
        private String text;
    }

    注解判断是随机顺序的,不是按照顺序来判断。传进来的text随机进@NoBlank和@Password。然后再进另一个。

    如果这个时候text为空。我们想要的判断是text进@NotBlank注解。然后返回text不能为空。

    要是Text先进入Password了、那么就会进password进行判断、那么返回值就不会是text不能为空。

    所以我们在Password中加入判断、判断传进来的值是否为空、如果不为空在进行判断、如果为空直接返回true、进入@NotBlank注解进行判断保证返回值每次都一样。

    public class PasswordValidator implements ConstraintValidator<Password, Object> {
    
        private String type;
        @Override
        public void initialize(Password constraintAnnotation) {
            type = constraintAnnotation.type();
        }
    
        @Override
        public boolean isValid(Object value, ConstraintValidatorContext constraintValidatorContext) {
         if(value == null){
           return true; // 进行判断如果为空直接返回true,进入@NotBlank注解中、这样每次传入的返回值就能保证一样了。
         }
    switch (type){ case "1": if(value.equals("123")){ return true; } return false; case"2": System.out.println(456); return true;        default: System.out.println("谢谢"); true; } return true; } }
  • 相关阅读:
    如何用cmd命令加密文件夹
    C++异常处理
    STRTOK
    如何生成Detours.lib——Detours的使用准备
    学习C++心得与值得一看的书
    工作两年后的感悟
    MFC十八个简单问题转载
    程序员的五种非技术错误 转载
    用VC写DLL中"error LNK2005: _DllMain@12 already defined"的错误
    CxImage
  • 原文地址:https://www.cnblogs.com/liljoker/p/13836956.html
Copyright © 2011-2022 走看看