問題タブ [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.
grails - Grails 2.5.0 - 制約は空白にするか、検証に従う
私は次のようなことをしたい:
ここで、データは空白か、空白でない場合はサイズ制約などの検証に従います。カスタム検証なしでこれを行うことは可能ですか?
mysql - エンコーディングを含むパラメーターで asp コマンド オブジェクト実行エラー
コマンド オブジェクトを使用してクエリを実行していますが、クエリの実行中に予期しないエラーが発生しました。助けが必要です。
同じコードが数行上で機能しているように見え、元の db テーブルを -dev コピー テーブルに置き換えた後にのみ表示されたようです。
コードは次のとおりです。
これは問題なく実行され、いくつかの結果を保存します。次に、次の行に対して別のクエリを実行し、同じパラメーターを使用します。
次のエラーが発生します。
これが現在表示されている可能性があり、エンコーディングをパラメーターにスローしている理由を誰かが正しい方向に向けることができることを願っています。私はこれを以前に見たことがあり、なんとか修正を見つけることができましたが、私の人生ではその方法を思い出すことができません。
すべてのヘルプは大歓迎です。どうもありがとう、JB
grails - Grail : GSP Input parameter name in case of nested list in grails command object
I am using grails 2.5 , my command object is
#xA;In my GSP
#xA;In my controller I am getting empty list.
Not sure how to rename the input box name so that I can get the concrete list of objects.
Thanks in advance.
grails - フォームのリダイレクト/レンダリングに関する Grails のベスト プラクティス
action がある場合def formPage()
、そのページにフォームを保存し、エラーが発生した場合は以前に入力した値をフォームに表示し、成功した場合は空白のフォームを表示できるようにしたいと考えています。
私の質問は: のformPage
ようなものを呼び出すのがベストプラクティスsaveFormPage(FormPageCommand fpc)
ですか? その後、以前に入力した値を使用して、または使用せずにsaveFormPage
レンダリングできます。formPage
このアプローチの問題点は、ユーザーがアドレス バーをクリックして Enter キーを押すと、フォームが入力されておらず、コマンド オブジェクトがすべての null または空白の値を認識しているため、多数のエラーが発生することです。
別のアプローチとして、 を使用してdef formPage(FormPageCommand fpc)
エラーを無視し、値が入力されていない場合は空白のフォームを表示することもできます。
値が入力されていない場合は、 を呼び出しsaveFormPage(FormPageCommand fpc)
てリダイレクトすることもできformPage()
ます。
ここでのベストプラクティスは何ですか?
grails - コマンドオブジェクトはコントローラーのみですか、それともサービスレイヤーに渡すことができますか?
Grails フレームワークでは、コマンド オブジェクト パターンを見ましたが、その使用方法はあまり明確ではありません。さらに、Grails のドキュメントに記載されている例のほとんどは、コマンド オブジェクトではなくドメイン クラスに関するものです (コード例を簡略化するためかもしれません)。
1 - コマンド オブジェクトは、ビューとコントローラー レイヤーの間で使用されるものであり、そこにとどまる必要がありますか?
2 - または、コマンド オブジェクトをサービス レイヤーに渡すことをお勧めしますか?
ポイント 2 を説明するには:
ポイント 2 が悪い習慣である場合、送信されたデータをサービス層に渡すにはどうすればよいでしょうか? ドメインクラス経由? 編集:問題ないようです
[編集]
ドメインクラスではなくコマンドオブジェクトを使用する場合、この場合の対処方法:
ユーザー サービス トランザクションが終了したときに、データベースによって例外が発生した場合 (スキーマの制約を無視してデータをフラッシュしたため) はどうなりますか?
私の観点からの問題は、次の 2 つのクエリがあることです。
まず - cmd.hasErrors() を呼び出すと、たとえば電子メールで一意の制約が永続的に呼び出されます
第二に-サービストランザクションが終了すると、DBへのフラッシュがあり(私の場合、1つのSQL挿入が発生します)、一意の制約を持つ列のメールで例外が発生する可能性があります
テスト cmd.hasErrors() は、DB が違反した制約固有の例外を発生させた場合、または私が間違っている場合を防止しませんか?
angularjs - Grails/Angular $http() がコマンド オブジェクトをバインドしない
現在、プロジェクトを Grails 2.2 から Grails 3.0 にアップグレードする作業を行っており、多くの問題が発生しています。私が現在取り組んでいるのは、Angular $http() とコマンド オブジェクトが正しくデータ バインディングされていないことに関係しています。
現在、Grails はすべての Command オブジェクトを Controller メソッドにバインドします。これはどこでも行われ、すべてを手動でバインドするのは大変な作業になります (私が今思いつく唯一の解決策)。最終的にはこれを行う必要があることはわかっていますが (より多くの制御。Grails は常に正しくバインドされません)、強制されない限り、そうする必要はありません。
以前のソリューションには、request.JSON フィールドを受け取り、params にまだ値がない場合にそれらを params にダンプするインターセプターが含まれていました。
Grails 3.0 では、Interceptor はコントローラーの外部で個別に定義されるようになったため、以前のものを複製するために以下を作成しました。
残念ながら、これは以前のように Grails 3.0 では機能しないようです。値は「params」に正しくマップされているように見えますが、コマンド オブジェクトではすべてが null に設定されています。インターセプターが実行される前に、コマンドオブジェクトが「作成」されているとしか思えません。値が request.JSON ではなく params に設定されるため、コマンド オブジェクトは $.ajax() 呼び出しから正しくバインドされます。
インターセプターで作成されたコマンドオブジェクトを手動で設定する方法はありますか、それとも他の解決策のアイデアはありますか?
編集: $http() 角度呼び出しの例
grails - Grails - コマンド オブジェクト、サービス メソッド
私はプログラミングに精通した人ではないので、ご容赦ください。
コマンドオブジェクトに関するブログエントリとドキュメントを読みました。私はそれを使用したことがなく、使用すべきかどうか疑問に思っていました。(きっとそうなるはず…)
私のプロジェクトでは、ユーザーがファイルをアップロードするときに、解析、並べ替え、計算、および結果のデータベースへの保存が必要です。
したがって、私が読んだブログエントリの1つとそれに対応するgithubコードによると、
1)SERVICE
ファイルのアップロードを受信し、アップロードされたファイル (主にドキュメントと PDF) を解析し、解析されたデータを RegEx を使用して並べ替え、データを計算する必要があります。
2)COMMAND OBJECT
を呼び出しSERVICE
、結果を収集して結果をコントローラに送り返し、結果をデータベースに保存する必要があります。
3)CONTROLLER
からリクエストを受け取り、 からVIEW
結果を取得し、結果をCOMMAND OBJECT
に送り返す必要がありますVIEW
。
正しく理解できましたか?
ありがとう。