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 回答