javaBean vlidation(2)—内置约束

javaBean vlidation(2)—内置约束

本文介绍规范内置的约束,并说明可选属性元素。

预定约束说明

javaBean验证规范内置了下面约束注解:

  • AssertFalse,AssertTrue
    元素属性:无
    目标变量类型:boolean, java.lang.Boolean
    期望目标变量值:false,true

  • DecimalMin,DecimalMax
    元素属性:(value=int, inclusive=boolean)
    目标变量类型:BigDecimal, BigInteger, CharSequence, primitive numbers (byte, short, int, long) and their respective wrappers
    期望目标变量值:variableValue >= value,variableValue <= value ; 注:如果inclusive=false,则不包括等号,缺省为ture.

  • Digits
    元素属性:(integer=int, fraction=int)
    目标变量类型:同上
    期望目标变量值:variableIntegralDigits <= integer 并且 variableFractionalDigits <= fraction

  • Min,Max
    元素属性: (value=int)
    目标变量类型:同上,除了CharSequence
    期望目标变量值:variableValue >= value,variableValue <= value

  • Size
    元素属性: (max=int, min=int)
    目标变量类型:CharSequence, Collection, Map, Array
    期望目标变量值:variableValueRelatedSize >= min 并且 variableValueRelatedSize <= max

  • Pattern
    元素属性:(regexp=String, flags=Pattern.Flag[])
    目标变量类型: CharSequence (String)
    期望目标变量值:Pattern.matches(regexp, variableValue) == true

  • Past,Future
    元素属性:无
    目标变量类型: java.util.Date, java.util.Calendar
    期望目标变量值:currentMillis of variableValue < time now in millis,currentMillis of variableValue > time now in millis

  • Null,NotNull
    元素属性:无
    目标变量类型:Any subclass of java.lang.Object
    期望目标变量值:variableValue == null,variableValue != null

上面约束定义在javax.validation.constraints包中。


可选属性说明

上面约束中标注为“无”属性,还有一些可选属性,下面给予详细说明:

  • message = String

    验证错误信息,缺省通过key读取资源文件,实现国际化。也可以直接使用硬代码覆盖缺省信息,或自定义资源文件,通过KEY覆盖。
    资源key需用在{}中。缺省的key是注解类的完整名称加上.message,如:javax.validation.constraints.Future.message。当我们自定义约束注解时,应该遵循相同的约定。

  • groups = Class

约束列表

上面每个预定义的注解,有一个内置注解List.我们看看NotNull的代码:

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = { })
 public @interface NotNull {
    String message() default "{javax.validation.constraints.NotNull.message}";
    Class<?>[] groups() default { };
    Class<? extends Payload>[] payload() default { };

    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
    @Retention(RUNTIME)
    @Documented
    @interface List {
       NotNull[] value();
    }
}

这个注解允许指定多个相同的注解,如不同组及错误信息。

总结

本文简要说明预定义约束注解,以及可选项的属性介绍,为后面我们自定义约束做写概念说明。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值