繁体   English   中英

列表的Bean验证大小?

[英]Bean validation size of a List?

如何设置一个Bean验证约束, List应该至少包含1并且最多包含10个元素?

以下都不起作用:

@Min(1)
@Max(10)
@Size(min=1, max=10)
private List<String> list;

我创建了简单的类:

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来检查空列表。 这样可确保列表中至少有一个项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM