我是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中工作 谢谢
答案 0 :(得分:3)
我认为您创建了自己的域名类&控制器类手动。首先,您的控制器应位于controllers
文件夹中,而不是myapp
。其次,您应该为您的域类和&定义一个包。控制器类,例如:
域类:
package myapp
class Book {
...
}
控制器类
package myapp
class BookController {
....
}
答案 1 :(得分:3)
确保每个类的位置与类和包声明一致。
我创建了一个域类
\的grails-app \域\美国广播公司
此类应如下所示
class Abc {
// implementation omitted
}
确保没有包声明,因为根据位置,此类应该在默认包中(这实际上是一种不好的做法)。理想情况下,您应该将此类放入包中,然后将源文件移动到与包名对应的\grails-app\domain
子目录中。
现在我在
中创建了一个控制器\的grails-app \控制器\ MYAPP \ myController的
此类应如下所示
package myapp
class myController {
// implementation omitted
}
请注意,此类应使用小写“m”命名,因为这是文件的命名方式。标准的Java / Groovy命名约定规定类应以大写字母开头。
在那里,当我创建一个对象时,它显示错误。
def Abc obj = new Abc
此代码存在以下几个问题:
def
或
<{1}}但不是两个请改为尝试:
Abc