1
我正在使用javax.validation.constraints.Pattern。@字符串列表中的@Pattern注释
我添加模式的pojo也包含一个List对象。 如何添加@Pattern注释以便检查元素?
@NotNull
private List<String> myListOfStrings;
感谢
我正在使用javax.validation.constraints.Pattern。@字符串列表中的@Pattern注释
我添加模式的pojo也包含一个List对象。 如何添加@Pattern注释以便检查元素?
@NotNull
private List<String> myListOfStrings;
感谢
。如果不String
你有一些自定义对象,诠释着List
与@Valid
和表达的规则在自定义对象会做的伎俩。
对于这种情况(你不能表达在String
类验证),我认为最好的机会是自定义验证到字符串列表上应用模式:
@NotNull
@ListPattern("regexp")
private List<String> myListOfStrings;
注释将大致看像:
@Constraint(validatedBy=ListPatternValidator.class)
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
public @interface ListPattern {
... // standard stuff
}
而且验证:
public class ListPatternValidator
implements ConstraintValidator<ListPattern, List<?>> {
public void initialize(ListPattern constraintAnnotation) {
// see Pattern implementation
}
public boolean isValid(List<?> value, ConstraintValidatorContext context) {
for(Object o : value) {
if(does not match) return false;
}
return true;
}
}