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