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();        
        }
    
    
    }
  • 相关阅读:
    Datatable导出到Excel
    C# 连接EXCEL和ACCESS字符串2003及2007版字符串说明
    C#-读取写入Excel
    简易的命令行入门教程:
    日志记录
    python环境管理器的选择
    go语言的模块处理
    pip 使用国内源 安装类库
    go 实现单链表并使用一种常规实现翻转,一种使用递归实现翻转
    数据库产品选型
  • 原文地址:https://www.cnblogs.com/yy123/p/6927358.html
Copyright © 2011-2022 走看看