問題タブ [grails-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
267 参照

grails - 行をフェッチするときの grails 検証

列がnullの場合、grailsでデフォルト値を取得することは可能ですか? Grails ドメイン オブジェクトを介して次のクエリを表すとしたら、どうすればそれを実現できますか。

ドメイン オブジェクト:

  • empsalary を nullable false にすることは、既存のデータのためオプションではありません
  • empsalary のバリデーターは、行を挿入するときは機能するようですが、データをフェッチするときは機能しません
  • ドメインにgetEmpSalary()メソッドを記述してそこでチェックを実行することを検討できますが、これを行う必要がある他のフィールドがいくつかあるため、大規模なコード変更を回避しようとしています
0 投票する
1 に答える
964 参照

grails - カスタム フィールド バリデータ内でグローバル メッセージ キーを返せないのはなぜですか?

条件付きの非 null 制約を適用するために、フィールドにカスタム バリデータを追加したいと考えています。この要件は複数のオブジェクト間で共有されるため、既存のグローバル (つまり、オブジェクト固有またはフィールド固有ではない) メッセージ キーを再利用したいと考えています。default.null.message以下の例では、のようなものではなく、使用したいと思いobjectA.fieldC.null.messageます。

Grails バリデーターのドキュメントには、message.properties からキーを表す文字列値を返すことで、エラー ケースを知らせることができると書かれているようです。ドキュメントは次のことを示しています(強調は私のものです):

クロージャは以下を返すことができます:

  • 値が有効であることを示す null または true (または戻り値なし)
  • 無効な値を示し、デフォルトのメッセージ コードを使用する場合は false
  • 「classname.propertyName」に追加するエラー コードを示す文字列。エラー メッセージを解決するために使用される文字列。フィールド固有のメッセージを解決できない場合、エラー コード自体が解決され、グローバル エラー メッセージが可能になります。
  • 上記のような文字列とそれに続く任意の数の引数を含むリスト。これらは grails-app/i18n/message.properties ファイルでフォーマットされたメッセージ引数として使用されます。引数のマッピングは次のとおりです。パラメータ 0 ~ 2 は、0: プロパティ名、1: クラス名、2: プロパティ値に自動的にマッピングされます。追加のパラメーターは、パラメーター 3 からマップされます。

また、1.0 でクローズされたGrails のバグも発見しました。

これが私がやっていることの例です。ご覧のとおり、私は 1 つのアプローチで動作しましたが、最初の 2 つのオプションが一見クリーンに見えて機能しないことに本当に悩まされています。

my のエントリは次のmessage.propertiesとおりです。

ここで、Grails カスタム フィールド バリデータとカスタム エラー メッセージに関連するいくつかの 質問を見てきましたが、私の特定の状況に対処するものは何もないようです。

0 投票する
1 に答える
158 参照

spring - Grails カスタム バリデータの問題を解決できない

grails プロジェクトで spring security core プラグインを使用しています。Person ドメインは次のようになります。

「パスワード」フィールドのカスタムバリデーターを作成したパスワードが繰り返されないようにする必要があります

私の統合テストは次のようになります

そして、私が得ている出力はこのようなものです

コードと出力を注意深く調べると、保存操作ごとにバリデータ関数が 2 回呼び出されていることがわかります。

この理由を誰か教えてください。これは、バリデータ内で使用している addTo メソッドが原因でしょうか?

0 投票する
1 に答える
139 参照

grails-2.3 - 楽観的ロックの問題 - rejectValue が機能せず、とにかく不正なドメインが保存される

他の人がこの問題を抱えているのを見てきましたが、私の場合にうまくいく解決策をまだ見つけていません. 私のドメイン コントローラの update メソッドでは、バージョンをチェックして rejectValue(); を使用して、楽観的ロックを実装しようとしています。しかし、私は明らかに何か間違ったことをしています。rejectValue() が呼び出されていることを確認しましたが、機能していないようです。

また、不良データを含むドメイン インスタンスはいずれにせよ保存されます。アドバイスやヘルプをいただければ幸いです。問題のある私の更新方法は次のとおりです。

0 投票する
0 に答える
897 参照

grails - Grails: 動的な findBy メソッドがスローされます メソッドのシグネチャはありません...引数の型に適用できます

Player ドメイン クラス内で、番号のカスタム バリデータ内で動的に生成された findByNumber メソッドを使用して、同じ番号を持つ既存の Player インスタンスを見つけようとしています。完全なドメイン クラスは以下のとおりです。

Grails アプリを実行し、生成されたスキャフォールディング Web ページを使用して意図的に新しいプレーヤーを作成しようとすると、次の例外がスローされます。

カスタムバリデータ内で動的に生成されたfindByメソッドを使用することは許可されていますか?