自定義注解驗證不能為空和長度


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


}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM