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; } }
  • 相关阅读:
    使用 Redis 实现分布式锁(转载)
    使用Redis SETNX 命令实现分布式锁(转载)
    linux目录(转载)
    sleep函数作用(转)
    大数据量高并发的数据库优化(转)
    java获取request的url方法区别
    java获取request的头信息
    打分排序系统漫谈2
    打分排序系统漫谈1
    Tree
  • 原文地址:https://www.cnblogs.com/liljoker/p/13836956.html
Copyright © 2011-2022 走看看