一,@NotBlank会验证输入的字符长度包括空格;@NotEmpty只验证是否为空字符串;@NonNull验证值是否为null。
二,@AssertURL会验证连接的有效性,但不会验证是否是null.@Email验证邮箱地址有效性,但不会验证是否为null。以上需要配合@NotNull使用。
三,@CheckWith(value=CheckAge.class,message="age must in (18~65)") 指定校验的对象。如下:
public class CheckAge implements CheckWithCheck.SimpleCheck{
private static final long serialVersionUID =1L;
@Override
public boolean isSatisfied(Object validatedObject, Object value) {
User user = (User) validatedObject;
int age = user.getAge();
if(age <18 || age > 65){
return false;
}else {
return true;
}
}
}
四,验证时间@DateRange、@Future、@Past。时间格式只能是yyyy-mm:dd HH:MM:ss;并且不能验证是否为null,需要配合@NotNull使用。(
@DateRange(min="2010-10-01",max="now",message="dateis error.")
private String birthday;
五,@EqualToField,@Not EqualToField 必须合某个字段相等/或者不能相等。
@NotNull(message="not null")
@NotBlank(message="userName不能为空")
private String userName;
@NotEqualToField(value="userName",message="can'tequals userName",useGetter=true)
private String userCode;
六,@HasSubstring必须包含某个子字符串。ignoreCase=true是否或略大小写。true/false
@HasSubstring(value="san",ignoreCase=true,message="must contains 'san'")
private String userCode;
七, @Length,@MaxLength,@MinLength空格也算一个字符。
max | 最大长度,默认为:Integer.MAX_VALUE
|
min | 默认值为0 |
@Length(max=10,min =5, message="最大长度不能超过10最小为5")
private String userCode;
@MaxLength(value = 5, message="最大长度不能超过5")
private String userCode;
public class Main {
public static void main(String[] args){
Validator validator = new Validator();
User user=new User();
user.setUserCode("狗蛋 ");
try {
VerifyUtil.validateFullObject(user);
} catch (MerchantServiceException e) {
Result<Object> objectResult = DealExceptionUtil.doExceptionService(e);
System.out.println(objectResult.toString());
}
}
}
输出结果:Result{success=false, errorCode=PARAMETER_VALID_NOT_PASS, errorMsg=最大长度不能超过5, primaryErrorCode=MERCHANT-CORE+PARAMETER_VALID_NOT_PASS, primaryErrorMsg=最大长度不能超过5, primaryErrorIP=192.168.11.118}
八,@MemberOf、@NotMemberOf参数说明value 字符串数组ignoreCase默认值false
Check if the string representation iscontained in the given string array.
检查值是否包含在给定的数组中;@NotMemberOf实现相反效果;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class User {
@MemberOf(ignoreCase = false,value ={"d","1","2"} )
@NotNull
private String num;
}
public class Main {
public static void main(String[] args){
Validator validator = new Validator();
User user=new User();
user.setNum("D");
try {
VerifyUtil.validateFullObject(user);
} catch (MerchantServiceException e) {
Result<Object> objectResult = DealExceptionUtil.doExceptionService(e);
System.out.println(objectResult.toString());
}
}
}
结果:
Result{success=false, errorCode=PARAMETER_VALID_NOT_PASS, errorMsg=com.bestpay.merchant.core.service.impl.moshi.oval.User.num must be one of these values: d,1,2, primaryErrorCode=MERCHANT-CORE+PARAMETER_VALID_NOT_PASS, primaryErrorMsg=com.bestpay.merchant.core.service.impl.moshi.oval.User.num must be one of these values: d,1,2, primaryErrorIP=192.168.11.118}
如有问题请指出!
参考于:https://blog.youkuaiyun.com/neweastsun/article/details/49154337