validation注解及自定义注解
Bean Validation 中内置的 constraint:
@Null被注释的元素必须为 null@NotNull被注释的元素必须不为 null@AssertTrue被注释的元素必须为 true@AssertFalse被注释的元素必须为 false@Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值@Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值@DecimalMin(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值@DecimalMax(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值@Size(max=, min=)被注释的元素的大小必须在指定的范围内@Digits(integer, fraction)被注释的元素必须是一个数字,其值必须在可接受的范围内@Past被注释的元素必须是一个过去的日期@Future被注释的元素必须是一个将来的日期@Pattern(regex=,flag=)被注释的元素必须符合指定的正则表达式
Hibernate Validator 附加的 constraint:
@NotBlank验证字符串非null,且长度必须大于0@Email被注释的元素必须是电子邮箱地址@Length(min=,max=)被注释的字符串的大小必须在指定的范围内@NotEmpty被注释的字符串的必须非空@Range(min=,max=,message=)被注释的元素必须在合适的范围内
自定义注解
package com.nf147.ssm.annotation;import java.lang.annotation.*;
import java.util.Arrays;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import javax.validation.Payload;@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Status {String message() default "没有这个类型,请重新选择";Class>[] groups() default {};Class extends Payload>[] payload() default {};
}
class StatusValidator implements ConstraintValidator{@Overridepublic void initialize(Status constraintAnnotation) {}@Overridepublic boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
//判断传入的值 s 是否是集合里的值return Arrays.asList("create","shop").contains(s);}
}
之后,在实体类对于指端上加上 @Status 就可以了
转载于:https://www.cnblogs.com/wfhking/p/9882198.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
