域类在我的控制器无法访问
我是新来的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上工作012. 谢谢
确保每个类的位置与类和包声明一致。
我创建了一个域类
\的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
或Abc
但不能同时 - 你错过了一些括号
试试这个:
Abc obj = new Abc()
我认为你手动创建了你的域类&控制器类。首先,您的控制器应位于文件夹controllers
中,而不是myapp
。其次,你应该定义一个包为您的域类&控制器类,例如:
域类:
package myapp
class Book {
...
}
Controller类
package myapp
class BookController {
....
}
如果他的控制器已经在名为myapp的包装中,那么它在正确的文件夹 – 2011-04-04 10:27:42
@Don:我认为最好尽可能简化;并举例说明。如果myapp文件夹中的控制器,域类也应该位于域/ myapp中。 – 2011-04-04 10:43:53
谢谢你的回答...问题是与包 – Jithin 2011-04-04 12:40:31
waw ...谢谢...它真的帮助我.. – Jithin 2011-04-04 12:39:56
确实很好的解释。 – 2011-04-05 01:28:33