0

7 つのフィールド (String monday、String tuesday、..) を含むコマンド オブジェクトがあり、それらの少なくとも 1 つが存在するかどうかを確認するためだけにそれを検証する必要があるとします。

Grails 1.3.7 を使用していたため、extended-validation-plugin (rich-domain ではない) でインスタンス検証を使用しようとしましたが、機能しませんでした。基本的に、静的制約ブロック内のフィールド以外のバリデータは認識しません。

静的制約 = { availabilitySelected(validator: { ... }) ...

そして私は得る:

例外メッセージ: そのようなプロパティはありません: availabilitySelected

それを行う他のスマートな方法はありますか?コマンドオブジェクトのすべてのフィールドにバリデーターを追加したくないだけです。

ありがとう

4

1 に答える 1

0

カスタムバリデーターの 2 つまたは 3 つのパラメーター形式を介して、検証中のオブジェクトにアクセスできます。

myField(validator: { val, obj, errors -> if( obj.blah.empty && obj.blah.empty ) { errors.reject( ... ) } )

http://grails.org/doc/1.3.7/ref/Constraints/validator.html

于 2013-02-06T12:24:09.233 に答える