自定义注解验证金额

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 = IsRMBFormatValidator.class) //具体的实现    
@Target( { java.lang.annotation.ElementType.METHOD,    
    java.lang.annotation.ElementType.FIELD })    
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)    
@Documented
/**
 * 
 * @description  功能描述: 自定义注解金额校验(19,4) 
 * @param        参         数: 
 * @Createdate   建立日期: 2016年12月28日下午2:33:38
 * @Projectname  项目名称: contract-operation
 * @Packageclass 包及类名: com.pt.modules.contract.utils.Customannotations.IsNumberFormatValidator.java
 */
public @interface IsRMBberFormat {    
    String message() default "{org.hibernate.validator.constraints.NotEmpty.message}";  
    
    Class<?>[] groups() default {};    
    
    Class<? extends Payload>[] payload() default {};    
        
} 
package com.loan.modules.extbiz.in.rabbitmq.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
/**
 * 
 * @description  功能描述: 自定义注解金额校验(19,4)
 * @param        参         数: 
 * @Createdate   建立日期: 2016年12月28日下午2:33:38
 * @Projectname  项目名称: contract-operation
 * @Packageclass 包及类名: com.pt.modules.contract.utils.Customannotations.IsNumberFormatValidator.java
 */
public class IsRMBFormatValidator implements ConstraintValidator<IsRMBberFormat, Object>{
    @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 != null){    
            boolean fglg =    this.isRMB(IdNumber.toString());
               if(fglg==true){    
                    return true;    
                }    
        }
        constraintValidatorContext.disableDefaultConstraintViolation();//禁用默认的message的值    
        constraintValidatorContext    
        .buildConstraintViolationWithTemplate(message+"只能输入数字类型长度不能大于19位").addConstraintViolation();  
        return false;    
    }
    
    public  boolean isRMB(String rmb){
        Pattern pattern = Pattern.compile("[0-9]+(.[0-9]{1,6})");//先定义正则
        Matcher isNum = pattern.matcher(rmb);
        if(!isNum.matches()) {
            return false;          
         }
         if(isNum.matches()){
       if(rmb.indexOf(".")!= -1){
        String intNumber = rmb.substring(0,rmb.indexOf("."));
        if(intNumber.length()>19){
            return false; 
         }
       }else{
              if(rmb.length()>19){
                  return false; 
               }
            }
         }else{
            if(rmb.length()>19){
               return false; 
            }
         }
        return true;
      
  }


    @Override
    public void initialize(IsRMBberFormat constraintAnnotation) {
        // TODO Auto-generated method stub
        
    }

}

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值