自定义注解验证不能为空和长度

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


}

 

转载于:https://www.cnblogs.com/yy123/p/6927358.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值