webentwicklung-frage-antwort-db.com.de

Bean Validierungsgröße einer Liste?

Wie kann ich eine Bean-Validierungsbeschränkung festlegen, dass ein List mindestens 1 und maximal 10 Elemente enthalten soll?

Keines der folgenden Werke:

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

Ich habe eine einfache Klasse erstellt:

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

}

Und teste:

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());

Es scheint, dass @Size Anmerkung funktioniert gut. Es kommt von javax.validation.constraints.Size

18
ByeBye

Sie können @NotEmpty verwenden, um nach leeren Listen zu suchen. Stellen Sie sicher, dass mindestens ein Element in der Liste enthalten ist.

2
Meet Shah