1

ConstraintValidatora内で aを実行するにはどうすればよいConstraintValidatorですか?

カスタムがあり、各タイプのカスタム@NotEmptyがありますが、正常に動作します。ConstraintValidator

ここで、指定されたフィールドの少なくとも 1 つが空でないことを確認するクラス レベルの制約を作成したいと考えてConstraintValidatorいます。制約部分( @ClassNotEmpty)はできていますが、問題はConstraintValidator実装です。ConstraintValidator特定の制約のインスタンスを取得するにはどうすればよいですか? すなわち

isValid(Object value, ConstraintValidatorContext constraintValidatorContext)  {
    String[] fieldValues = getFieldValues(value, this.classNotEmpty.fieldNames());

    for (String fieldValue : fieldValues) {
        <What do I put here?>.isValid(fieldValue, constraintValidatorContext);
    }
}

検証ルーチンをヘルパー クラスにプルアップせずにこれを行う方法はありますか?

ところで、Spring と Hibernate Validator を使用しています。

4

2 に答える 2

1

さらなる調査の結果ConstraintValidator、ポータブルであるかどうかにかかわらず、特定の制約のインスタンスを取得するための既知の解決策はないようです。ヘルパー クラスがこれを行う唯一の方法のようです。

于 2010-12-24T02:57:55.607 に答える
0

目の前に情報はありませんが、他のバリデーターで構成されるバリデーターについて何か読んだことを覚えています。したがって、2 つのバリデータ A と B がある場合、他の 2 つで構成される 3 番目の「C」を定義できます。ドコを探せば見つかるはずだ。

検索して、これを読んでください:http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html/validator-customconstraints.html#validator-customconstraints-compound

それはあなたが探しているものかもしれません。

于 2010-12-22T23:47:27.233 に答える