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;
}
}