問題タブ [groovy]
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 - Groovy ミックスイン?
Groovy/Grails アプリでクラスをミックスインしようとしています。 docsで定義されている構文を使用していますが、エラーが発生し続けます。
次のようなドメインクラスがあります。
正常にコンパイルされますが、何らかの理由で動作しません。ImagesMixin を含むファイルは、私の/src/groovy/
ディレクトリにあります。
Groovy バージョン 1.5.7 および 1.6-RC1 を使用して試してみましたが、うまくいきませんでした。私が間違っていることを誰かが知っていますか?
スタックトレース:
javascript - Grails で JavaScript ソースの groovy ステートメントを実行する
Grails で JavaScript 関数を定義する場所は基本的に 2 つあります。GSP の要素で直接定義する場所と、/web-app/js の下の別の JavaScript ソース ファイル (たとえば、application.js) 内です。application.js 内で一般的に再利用される JavaScript 関数を定義しましたが、関数の一部を Groovy コードを使用して動的に生成できるようにする必要もあります。残念ながら、${some groovy code} は別の JavaScript ソース ファイル内で処理されていないようです。
GSP ページの script タグ内で javascript 関数を定義することによってこれを行う唯一の方法ですか、それともより一般的な解決策がありますか? もちろん、再利用されるテンプレート GSP ファイル内のスクリプト タグで JavaScript 関数を定義することもできますが、JavaScript 関数を 1 か所 (つまり、外部 JavaScript ソース ファイル) でまとめて定義しておくことを強く求められています。これにはパフォーマンス上の利点もあります (クライアントがアクセスするすべての HTML ページのソース内で同じ JavaScript 関数を再ロードするのではなく、JavaScript ソース ファイルは通常、各クライアントのブラウザーによって 1 回だけダウンロードされます)。関数を静的部分と動的部分に分割し、静的部分を外部ソースに配置し、動的部分をテンプレート GSP に配置してから、それらを接着するというアイデアをいじりました。
何か案は?
(編集: JavaScript 関数の一部を動的に生成し、一度ダウンロードしてクライアントが何度も使用するという考えは悪い考えのように聞こえるかもしれません。しかし、「動的」な部分は変化するだけです。おそらく週または月に 1 回、その後はごくわずかです. ほとんどの場合、ハードコーディングするのではなく、1 回だけでも、データベースからこの部分を生成したいだけです.)
grails - コンボボックスで表されるGrailsのフィールドをオプションにするにはどうすればよいですか?
私は Grails で最初の実験を行っており、フィールドをコンボボックス (1 対 1 のドメイン関連付けや狭い範囲の制約を持つ数値など) で表す方法を探しています。コンボボックスへのエントリー。
これはどのように達成できますか?nullable:true
制約を追加して静的プロパティにフィールドをリストすることを試みましたoptionals
が、どちらも望ましい結果をもたらしません。
これらは私のドメインクラスです:
java - Groovy を使用しないやむを得ない理由はありますか?
私は、プラットフォームから長い間離れていた後、Java で LoB アプリケーションを開発しています (過去 8 年ほど Fortran、C、C++ の smidgin、そして最近は .Net に固執していました)。
言語であるJavaは、私が覚えているものとあまり変わっていません。私はその長所が好きで、その短所を回避することができます.プラットフォームは成長しており、互いにほとんど同じことを行うように見える無数の異なるフレームワークを決定することは別の話です. しかし、それは別の日に待つことができます-全体として、私はJavaに慣れています. しかし、ここ数週間で私は Groovy に夢中になりました。これは純粋に利己的な観点からです: JVM に対する開発をより簡潔で楽しい (そして、「グルービー」な) 命題にするという理由だけではありません。 Java(言語)よりも。
Groovy について最も印象に残っているのは、Groovy 固有の保守容易性です。私たちは皆 (願わくば!) 十分に文書化された、理解しやすいコードを書くよう努めています。しかし、私たちが使用する言語自体が私たちを打ち負かすことがあります。例: 2001 年に、EDIFACT EDI メッセージを ANSI X12 メッセージに変換するライブラリを C で作成しました。これは特に複雑なプロセスではありませんが、多少の関与はありますが、当時はコードを適切に文書化したと思っていましたが、おそらく文書化していたと思いますが、6 年後にプロジェクトを再訪したとき (そして C# に順応した後)、私は見つけました。私自身、C のボイラープレート (malloc、ポインターなど) に夢中になりすぎたため、6 年前に自分が何をしていたかを最終的に理解するまでに、3 日間の思慮深い分析が必要でした。
今夜、私は約 2000 行の Java を書きました (結局のところ、今日は休みの日です!)。私が知っている限りの方法で文書化しましたが、Java の 2000 行のうち、かなりの部分が Java ボイラー プレートです。
これが、Groovy やその他の動的言語が、保守性とその後の理解で勝利を収めているところです。Groovy を使用すると、プラットフォーム固有の実装に行き詰まることなく、目的に集中できます。それはほぼ自己文書化されていますが、完全ではありません。これは、数年後に現在のプロジェクト (Groovy にできるだけ早く移植する予定です) を再検討するとき、そしてそれを継承して良い仕事を続ける後継者にとって大きな恩恵であると考えています。
では、Groovy を使用しない理由はありますか?
rest - RESTful Grails: XML に関連するエンティティを含めるにはどうすればよいですか?
多くの従業員を持つ Store というクラスがあるとします。私の RESTful listXML メソッドは次のようになります。
結果は次のようになります。
私の質問は、各 Employee クラスのすべてのデータをどのように含めて、XML が次のようになるかということです。
groovy - Groovy での findAll コレクション クロージャの使用
findAll クロージャーを使用する必要がある「セット」があります。Set には、プリミティブ値だけでなく、オブジェクトが含まれています。たとえば...私は従業員オブジェクトのセットを持っており、従業員の属性によってその従業員オブジェクトのセットの要素を反復して取得する必要があります。
何らかの理由で、findAll クロージャーは私のクローズを無視しているようで、空のセットを返します。
これが私の構文です。
grails - Groovy / Grailsでtaglibs(または一般的なクロージャ)を文書化する方法
プラグインの一部として最初のtaglibを作成していますが、それを文書化したいと思います。javadocの追加(groovydocを文書化する場所はありますか、それとも本当に同じものですか?)非メソッドでは機能しないようです。
具体的には、defmytagを次のように文書化する方法:
Grailsの多くのものはクロージャーを使用して指定されているため、それらを文書化することが本当に不可能な場合は、問題があるように見えます。使用する必要のある個別のドキュメントファイルを含む他の解決策はありますか?
sql - Grails / Hibernateでカウントする方法:Message.countBy
本文の長さが0〜25文字のメッセージの数をカウントするにはどうすればよいですか?
私にとって残念なことにcountBy
、文字列パラメータを取りません。
xml - Groovy+ XML: Namespace-Prefix を使用して属性を処理する
Groovy を使用して XML ドキュメントに取り組んでおり、名前空間プレフィックスを持つ特定の属性のノードをテストしています。どのように機能しますか:
groovy スクリプトで:
XML ドキュメント:
次のようなものを探しています:
THXセルドン