0

Bean Validatorを基盤となるフレームワークと統合する必要があるプラグインに取り組んでいますが、問題が発生した1つの時点を除いて、正常に機能しているようです。

プラグインは、JSR303仕様に準拠するBean Validator(Hibernate-Validator、Apache Bean Validator)をブリッジに提供するように注意します。

いくつかの制約違反エラーが発生したら、それがどのような違反であったかを知る必要があります

  1. ファイルレベルの制約
  2. プロパティレベル
  3. クラスレベル

これに基づいて、エラーメッセージを作成し、他の作業を行う必要があります。

ConstraintViolation<?>UIに表示するものを準備するために後処理を実行できるように、制約違反のタイプを見つける方法はありますか?

4

1 に答える 1

2

ConstraintViolationからConstraints違反のタイプを見つけて、UIに表示するものを準備するために後処理を実行できるようにする方法はありますか?

いいえ、ありません。クラスレベルの制約とプロパティの制約を区別できます。ただし、注釈がフィールドに配置されたのか、属性のゲッターに配置されたのかを判断する方法はありません。

クラス制約とプロパティ制約を判断する1つの方法は、ConstraintViolation#getPropertyPath()を確認することです。getName()がリーフノードでnullを返す場合は、クラスレベルの制約があります。それ以外の場合は、プロパティレベルの制約があります。

Bean Validation 1.1(JSR 349)では、 ConstraintViolation#getPropertyPath()によって返されるパスにノードごとに#getElementDescriptorが含まれているため、処理が少し簡単になります。属性へのアクセス方法(フィールドとゲッター)を区別する方法はまだありません。

于 2012-10-04T09:51:36.627 に答える