Fee*_*eco 3 java bean-validation
我使用Spring MVC进行表单验证.用户实体具有字段登录:
@Pattern(regexp = Constants.LOGIN_PATTERN)
@Size(min = 4, max = 50)
private String login;
Run Code Online (Sandbox Code Playgroud)
但我希望将这个注释用于其他字段,例如,使用RegisterData.login.所以我创建了另一个注释:
@Retention(RetentionPolicy.RUNTIME)
@Target(value = { ElementType.FIELD, ElementType.PARAMETER })
@Pattern(regexp = Constants.LOGIN_PATTERN)
@Size(min = 4, max = 50)
public @interface Login {
}
Run Code Online (Sandbox Code Playgroud)
现在用它标记字段.但这不起作用.它是一种使用这种"继承"的方式吗?或者我应该重复一遍?
@Login通过添加@Constraint注释,您将缺少注释声明作为约束.从Bean Validation规范:
通过使用组合约束注释来注释约束注释来完成组合.
由于组合约束不需要验证器,因此可以将该validatedBy属性设置为空数组.
@Pattern(regexp = Constants.LOGIN_PATTERN)
@Size(min = 4, max = 50)
@Constraint(validatedBy = {})
@Target(value = { ElementType.FIELD, ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
public @interface Login {
String message() default "Incorrect login";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
Run Code Online (Sandbox Code Playgroud)