0

Grails と groovy は初めてです。
ドメイン クラスを作成しました。

\grails-app\domain\Abc

今、私はコントローラーを作成しました

\grails-app\controllers\myapp\myController

その中で、オブジェクトを作成するとエラーが表示されます。

def Abc obj = new Abc

私が得たエラーは

unable to resolve class Abc 

インポートしようとしましたが、そこにも表示されませんでした。私はgrails 1.3.7とIntelliJ IDEA 10.0.2で働いてい
ますありがとう

4

2 に答える 2

3

ドメインクラスとコントローラークラスを手動で作成したと思います。まず、コントローラはcontrollersではなくフォルダにある必要がありますmyapp。次に、ドメイン クラスとコントローラー クラスの両方のパッケージを定義する必要があります。次に例を示します。

ドメイン クラス:

package myapp

class Book {
...
}

コントローラ クラス

package myapp

class BookController {
....
}
于 2011-04-04T09:48:57.217 に答える
3

各クラスの場所が、クラスおよびパッケージの宣言と一致していることを確認してください。

ドメインクラスを作成しました

\grails-app\domain\Abc

このクラスは次のようになります

class Abc {
    // implementation omitted
}

パッケージ宣言がないことを確認してください。場所に基づいて、このクラスはデフォルトのパッケージに含まれているはずです (これは実際には悪い習慣です)。理想的には、このクラスをパッケージに入れ、ソース ファイルを\grails-app\domainパッケージ名に対応する のサブディレクトリに移動する必要があります。

今、私はコントローラーを作成しました

\grails-app\controllers\myapp\myController

このクラスは次のようになります

package myapp
  
class myController {
    // implementation omitted
}

このクラスは小文字の 'm' で名前を付ける必要があることに注意してください。これは、ファイルの名前が小文字であるためです。標準の Java/Groovy 命名規則では、クラスは大文字で始める必要があります。

その中で、オブジェクトを作成するとエラーが表示されます。

def Abc obj = new Abc

このコードにはいくつかの問題があります。

  • タイプをどちらか一方として定義しますdefAbc、両方として定義することはできません
  • いくつかの括弧がありません

代わりにこれを試してください:

Abc obj = new Abc()
于 2011-04-04T10:36:59.033 に答える