4

私は大きな豆を検証しています。これは、動的フォーム ページに基づいています。検証中の一部のフィールドはフォームに表示されないため、空または null です。しかし、目に見えないフィールドを検証したくありません。表示されていて検証したい場合もあれば、表示されていないため検証したくない場合もあります。私はまず、送信する前にシリアル化されたフォームからこれらのフィールドを削除するというアプローチを取りました。ただし、欠落しているフィールドは検証タグ付きで Bean に存在するため、引き続き検証されます。私がやろうとしていることをする正しい方法は何ですか?

4

1 に答える 1

3

考えられるアプローチの1つは、検証グループを使用することです。グループごとに異なる検証ルールを定義します。その後、これらのグループの1つまたはグループのセットに対してのみバリデーターを呼び出すことができます。

public class TestBean {

    @NotNull(groups= {Group1.class})
    @Size.List({
        @Size(min=1, groups= {Group1.class}),
        @Size(min=0, groups= {Group2.class})
    })
    private String test;
}

public interface Group1 { }
public interface Group2 { }

次に、これらのグループの1つ以上のバリデーターを呼び出すことができます

Validator validator = ....;
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(objectToValidate, Group1.class);

グループの検証の詳細については、こちらを参照してください。

于 2013-01-23T17:27:55.253 に答える