4

Bean のプロパティで 2 つの検証アノテーションを使用しています。

@NotEmpty(message = "{name.required}")
@Pattern(regex = "^([A-Za-z0-9]{2,}(\\-[a-zA-Z0-9])?)$", message = "{invalid.name}")
private String name;

名前を空のままにすると、2 つのエラーが表示されますが、最初のエラー メッセージのみが必要です (最初の条件が発生した場合は、そのエラー メッセージを表示し、2 番目の条件をスキップします)。

4

2 に答える 2

5

最初の条件が発生した場合は、そのエラー メッセージを表示し、2 番目の条件をスキップします

これは、複合制約を作成し、@ReportAsSingleViolation メタ制約で注釈を付けることで実行できます。

ユーザー名.java

@ReportAsSingleViolation
@NotEmpty
@Pattern(regexp="^([A-Za-z0-9]{2,}(\\-[a-zA-Z0-9])?)$")
@Constraint(validatedBy = {})
public @interface UserName {
    String message() default "invalid userName!";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}

参照3.2。制約の構成

于 2010-11-23T10:34:14.217 に答える