我有一个用户域对象,其中包含通常的字段(名称,密码等)
我使用以下命令生成了视图和控制器:
可以生成所有用户
慷慨的UserController具有以下功能:
Private
运行应用程序并单击“创建用户”按钮时,出现此错误:
def create() {
respond new User(params)
}
如果我调试该应用程序,然后查看“ params”的内容,则它:
Error 500: Internal Server Error
URI
/user/create
Class
groovy.lang.MissingPropertyException
Message
null
Caused by
No such property: controller for class: gi.dam.desk.core.User
Around line 23 of grails-app/controllers/gi/dam/desk/admin/UserController.groovy
20: }
21:
22: def create() {
23: respond new User(params)
24: }
将其传递给创建域对象似乎很奇怪。无论哪种方式,它都会失败。
如果我这样更改代码:
controller: user
format: null
action: create
它进一步发展-它创建了用户,但是之后重定向失败。
答案 0 :(得分:0)
您的User
类似乎未被识别为域类。我可以说,因为我们添加到域类中的Map
构造函数将忽略Map
中类中没有相应属性的条目。您看到的错误是默认Groovy Map
构造函数产生的,这就是为什么我认为您的User
类未被识别为域类的原因。
请确认您的User
域类已在grails-app/domain/gi/dam/desk/core/User.groovy
中定义,并且如果问题仍然存在,请在从命令行./gradlew bootRun
运行应用程序时验证问题是否出现。这将排除您可能会执行的与未正确配置IDE有关的许多事情。