zoukankan      html  css  js  c++  java
  • 自定义注解验证不能为空和长度

    package com.loan.modules.extbiz.in.rabbitmq.util;
    
    import java.lang.annotation.Documented;
    import java.lang.annotation.Retention;
    import java.lang.annotation.Target;
    
    import javax.validation.Constraint;
    import javax.validation.Payload;
    
    @Constraint(validatedBy = IsFormatValidator.class) //具体的实现    
    @Target( { java.lang.annotation.ElementType.METHOD,    
        java.lang.annotation.ElementType.FIELD })    
    @Retention(java.lang.annotation.RetentionPolicy.RUNTIME)    
    @Documented
    public @interface IsFormat {    
        String message() default "{org.hibernate.validator.constraints.NotEmpty.message}"; 
        
        int length()  ; 
        
        Class<?>[] groups() default {};    
        
        Class<? extends Payload>[] payload() default {};    
            
    } 
    package com.loan.modules.extbiz.in.rabbitmq.util;
    
    import javax.validation.ConstraintValidator;
    import javax.validation.ConstraintValidatorContext;
    /**
     * 
     * @description  功能描述: 自定义注解验证不能为空和长度
     * @param        参         数: 
     * @Createdate   建立日期: 2017年5月4日下午2:33:38
     */
    public class IsFormatValidator implements ConstraintValidator<IsFormat, Object>{
        
        private int Valuelength; 
        @Override    
        public boolean isValid(Object IdNumber, ConstraintValidatorContext constraintValidatorContext) {
            String message=constraintValidatorContext.getDefaultConstraintMessageTemplate();
            if(IdNumber==null||IdNumber.toString().equals("")){
                 constraintValidatorContext.disableDefaultConstraintViolation();//禁用默认的message的值    
                    constraintValidatorContext    
                    .buildConstraintViolationWithTemplate(message+"不能为空").addConstraintViolation();  
              return false;    
            }
        if(IdNumber.toString().length()>Valuelength){
                constraintValidatorContext.disableDefaultConstraintViolation();//禁用默认的message的值    
                   constraintValidatorContext    
                   .buildConstraintViolationWithTemplate(message+"长度不能超过"+Valuelength+"位").addConstraintViolation();  
             return false;    
           }
          return true;
        }
        
    
        @Override
        public void initialize(IsFormat constraintAnnotation) {
          Valuelength=constraintAnnotation.length();        
        }
    
    
    }
  • 相关阅读:
    JavaScript 类型转换
    Bjarne Stroustrup
    格拉丘纳斯的上下级关系理论
    成功者必须具备的三大技能
    ASP.NET/Perl.NET (转)
    iPhone/Mac ObjectiveC内存管理教程和原理剖析
    objectivec日期之间比较可用以下方法
    Centos下安装中文输入法
    C#中数字的四舍五入与只取整
    关于Application.Lock和Lock(obj)
  • 原文地址:https://www.cnblogs.com/yy123/p/6927358.html
Copyright © 2011-2022 走看看