問題タブ [command-objects]
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.
validation - グレイル コマンド オブジェクト インスタンスの検証?
7 つのフィールド (String monday、String tuesday、..) を含むコマンド オブジェクトがあり、それらの少なくとも 1 つが存在するかどうかを確認するためだけにそれを検証する必要があるとします。
Grails 1.3.7 を使用していたため、extended-validation-plugin (rich-domain ではない) でインスタンス検証を使用しようとしましたが、機能しませんでした。基本的に、静的制約ブロック内のフィールド以外のバリデータは認識しません。
静的制約 = { availabilitySelected(validator: { ... }) ...
そして私は得る:
例外メッセージ: そのようなプロパティはありません: availabilitySelected
それを行う他のスマートな方法はありますか?コマンドオブジェクトのすべてのフィールドにバリデーターを追加したくないだけです。
ありがとう
grails - コマンドオブジェクトは時々検証を忘れますか?
私は Grails 1.3.7 を使用しており、複数のコントローラーに同様のコードがあります。
99.99% の確率で正常に動作します。ただし、サービスが null で呼び出された (つまり、cmd.someId が null を返した) ことをアプリケーション ログが示す場合がいくつかあります。ただし、制約が に設定されているため、これは意味がありませんnullable: false
。validate()
非常にまれなケースで、grails がコマンド オブジェクトを呼び出すのを忘れたり、制約が無視されたりしたように感じます。
このような問題の原因についてのヒントをいただければ幸いです。
grails - Grails - コマンドオブジェクトの以前の検証エラーをクリアするには?
ユーザーがブラウザーの [戻る] ボタンをクリックしたときに Command オブジェクトからの以前の検証エラー メッセージをクリアする方法は?
サンプルコードは次のとおりです。
シナリオ
ステップ 1: データを入力せずにフォームを送信すると、コマンド オブジェクトから GSP に検証メッセージが表示されます。
ステップ 2: データを含むフォームを送信し、ユーザーが成功ページに移動します。
ステップ 3: ブラウザーの [戻る] ボタンをクリックして、以前の検証メッセージに注意してください。
検証メッセージをクリアするための回避策は何ですか?
grails - Grails Command オブジェクトはプロジェクト構造のどこに配置する必要がありますか?
domain/my/package/name に LoginCommand というクラスがあります
私の質問は、grails の ***Command オブジェクトに対してデータベースでテーブルが自動生成されるのはなぜですか? これらのコマンド オブジェクトは、hibernate/orm によるテーブルの自動生成を避けるために、/domain の外側に配置する必要がありますか?
grails - grailsがネストされたコマンドオブジェクトを検証しない
私は grails 2.2.1 を使用しており、ネストされたコマンド構造を検証しようとしています。これが私のコマンドオブジェクトの簡略化されたバージョンです:
インスタンスを検証しようとすると、セクションの値に関係なくSurveyCommand
常に返され、 ( )true
内のカスタム バリデータは呼び出されません。grails のドキュメントから、この種のネストされた構造がサポートされているようです(デフォルトは true です)。しかし、このルールはドメイン オブジェクトにのみ適用され、コマンド オブジェクトには適用されないのではないでしょうか? それとも、ここで何かが足りないのですか?SectionCommand
answerNotBlank
deepValidate
grails - Grails で異なる名前のコマンド オブジェクト プロパティにリクエスト パラメータをバインドする
GSP に「email-address」、「passwd」、「passwd-confirm」などのフィールド名を持つ ag:form があります。
「email」、「password」、「passwordConfirm」などのプロパティを持つ Command オブジェクトもあります。
私のコントローラ アクションでは、Grails にフォーム フィールドを新しい Command オブジェクトにバインドさせたいと考えています。
Grails がリクエスト パラメータを Command オブジェクトに nameでバインドしようとしているようです。名前が一致しない Command オブジェクト プロパティにフォーム パラメータをバインドできるように、そのバインドをカスタマイズする方法はありますか?
grails - Grails で日付をコマンド オブジェクトにバインドする
日付を (文字列として) 送信しています。これをコマンド オブジェクトにマッピングしたいと思います。私はかなり見回しましたが、コマンドオブジェクト内でこのマッピングを実際の日付に行う方法についての優れたリソースは見つかりませんでした。
コントローラー自体でこれを行う場合、次のようにするだけで済みますが、コマンド オブジェクトに簡単にマップすることはできません。
私のコマンド オブジェクトの場合、取得できる最も近い方法は、日付オブジェクトのゲッターとセッターをオーバーライドすることです。どちらもオーバーライドする必要があります。そうしないと、セッターは使用されません。これは私が最初に試したことです(文字列を日付に設定しますが、日付を取得します)。したがって、これはセッターを使用しません。
これは実行時の問題を引き起こしませんが、実際の Date オブジェクトを引き出すことができないため役に立ちません。
grails - Grails - パラメータを別の名前のコマンド オブジェクト フィールドにバインドする
コマンド オブジェクト SomeClassCommand に文字列フィールド someField があり、パラメータ params.otherField からデータをバインドしたい場合、どうすればよいですか? コマンドオブジェクトに入れることができる注釈はありますか?