zoukankan      html  css  js  c++  java
  • 自定义注解标签验证

    package com.pt.modules.contract.utils.Customannotations;
    
    import java.lang.annotation.Documented;    
    import java.lang.annotation.Retention;    
    import java.lang.annotation.Target;    
    
    import javax.validation.Constraint;    
    import javax.validation.Payload;    
        
    /**
     * 
     * @description  功能描述: 自定义注解身份证号格式校验
     * @author       作        者: 
     * @param        参        数: 
     * @Createdate   建立日期: 2016年12月28日下午2:34:44
     */
    @Constraint(validatedBy = IsNumberFormatValidator.class) //具体的实现    
    @Target( { java.lang.annotation.ElementType.METHOD,    
        java.lang.annotation.ElementType.FIELD })    
    @Retention(java.lang.annotation.RetentionPolicy.RUNTIME)    
    @Documented
    public @interface IsNumberFormat {    
        String message() default "{org.hibernate.validator.constraints.NotEmpty.message}";  
        
        Class<?>[] groups() default {};    
        
        Class<? extends Payload>[] payload() default {};    
            
    }  
    package com.pt.modules.contract.utils.Customannotations;
    
    import javax.validation.ConstraintValidator;
    import javax.validation.ConstraintValidatorContext;
    
    import com.pt.modules.contract.utils.IdcardValidator;
    /**
     * 
     * @description  功能描述: 自定义注解身份证号格式校验
     * @param        参         数: 
     * @Createdate   建立日期: 2016年12月28日下午2:33:38
     */
    public class IsNumberFormatValidator implements ConstraintValidator<IsNumberFormat, String>{
        @Override    
        public boolean isValid(String IdNumber, ConstraintValidatorContext constraintValidatorContext) {
            String message=constraintValidatorContext.getDefaultConstraintMessageTemplate();
            if(IdNumber != null){    
                IdcardValidator  p = new IdcardValidator();
                boolean fglg =    p.isValidatedAllIdcard(IdNumber);
                   if(fglg==true){    
                        return true;    
                    }    
            }
            constraintValidatorContext.disableDefaultConstraintViolation();//禁用默认的message的值    
            constraintValidatorContext    
            .buildConstraintViolationWithTemplate(message+IdNumber).addConstraintViolation();  
            return false;    
        }
    
        @Override
        public void initialize(IsNumberFormat constraintAnnotation) {
            
        }
    
    }
        @IsNumberFormat(message="属性名--lenNumber,出借人身份证号格式不正确--")
        private String lenNumber;
        try {
                BeanValidators.validateWithException(validator, lendInfo);// 报文校验      }catch (ConstraintViolationException e) {
               BeanValidators.extractMessage(e).toString();      
            }
  • 相关阅读:
    mongodb数据库shell
    PLINK pca
    xgboost 安装
    tensorflow之损失函数
    php,mysql存储过程的简单例子
    ECharts初体验
    mysql常用连接查询
    php流程控制
    php循环
    高效率php注意事项
  • 原文地址:https://www.cnblogs.com/yy123/p/6372913.html
Copyright © 2011-2022 走看看