列表的 Bean 验证大小?
Bean validation size of a List?
如何设置 bean 验证约束,使 List
至少包含 1 个元素,最多包含 10 个元素?
None 以下作品:
@Min(1)
@Max(10)
@Size(min=1, max=10)
private List<String> list;
我创建了简单的 class:
public class Mock {
@Size(min=1, max=3)
private List<String> strings;
public List<String> getStrings() {
return strings;
}
public void set(List<String> strings) {
this.strings = strings;
}
}
并测试:
Mock mock = new Mock();
mock.setStrings(Collections.emptyList());
final Set<ConstraintViolation<Mock>> violations1 = Validation.buildDefaultValidatorFactory().getValidator().validate(mock);
assertFalse(violations1.isEmpty());
mock.setStrings(Arrays.asList("A", "B", "C", "D"));
final Set<ConstraintViolation<Mock>> violations2 = Validation.buildDefaultValidatorFactory().getValidator().validate(mock);
assertFalse(violations2.isEmpty());
@Size
注释似乎运行良好。来自javax.validation.constraints.Size
您可以使用@NotEmpty 来检查空列表。这确保列表中至少有一项。
如何设置 bean 验证约束,使 List
至少包含 1 个元素,最多包含 10 个元素?
None 以下作品:
@Min(1)
@Max(10)
@Size(min=1, max=10)
private List<String> list;
我创建了简单的 class:
public class Mock {
@Size(min=1, max=3)
private List<String> strings;
public List<String> getStrings() {
return strings;
}
public void set(List<String> strings) {
this.strings = strings;
}
}
并测试:
Mock mock = new Mock();
mock.setStrings(Collections.emptyList());
final Set<ConstraintViolation<Mock>> violations1 = Validation.buildDefaultValidatorFactory().getValidator().validate(mock);
assertFalse(violations1.isEmpty());
mock.setStrings(Arrays.asList("A", "B", "C", "D"));
final Set<ConstraintViolation<Mock>> violations2 = Validation.buildDefaultValidatorFactory().getValidator().validate(mock);
assertFalse(violations2.isEmpty());
@Size
注释似乎运行良好。来自javax.validation.constraints.Size
您可以使用@NotEmpty 来检查空列表。这确保列表中至少有一项。