List
に少なくとも1が含まれ、最大で10個の要素が含まれるべきBean検証制約を設定するにはどうすればよいですか?次の作品のリストのBean検証サイズ?
なし:
@Min(1)
@Max(10)
@Size(min=1, max=10)
private List<String> list;
List
に少なくとも1が含まれ、最大で10個の要素が含まれるべきBean検証制約を設定するにはどうすればよいですか?次の作品のリストのBean検証サイズ?
なし:
@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
入手しました:私は 'spring-mvc'を使用しています。入力パラメータでリストがすべて定義されている場合、検証は' List'にのみ適用されます(私の要求でリストを省略しました。 min = 1)。解決策は、リストが常に存在し、少なくとも1つの項目を持つ必要がある場合に、@ @ NotNull'' @ Size'を組み合わせて使用することです。 – membersound
私のために、@サイズは完全に動作します。あなたはそれを検証する場所にコードを表示できますか? import javax.validation.constraints.Sizeを使用しましたか? – ByeBye