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();        
        }
    
    
    }
  • 相关阅读:
    ThreadLocal分析学习
    探究.NET的bin引用程序集运行机制看.NET程序集部署原理
    ASP.NET网页代码模型分析
    JBPM与设计模式之职责链模式
    根据webform页面大小的变化动态调整控件的大小
    jbpm binding类深入解析
    JBPM与软件架构模式之命令模式
    JBPM对象主键生成机制
    主键思维定势导致的惨案
    电脑安装windows server 2008 导致磁盘分区消失解决方法
  • 原文地址:https://www.cnblogs.com/yy123/p/6927358.html
Copyright © 2011-2022 走看看