自定义注解标签验证

Posted 也许还年轻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义注解标签验证相关的知识,希望对你有一定的参考价值。

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();      
        }

 

以上是关于自定义注解标签验证的主要内容,如果未能解决你的问题,请参考以下文章

Spring自定义标签

springboot学习(二十二)_ 使用@Constraint注解自定义验证注解

自定义标签-自定义注解

枚举帮助方法,枚举数据注解自定义验证器

Sublime Text3自定义代码片段

spring boot 自定义Validator注解