grails 3.3.8生成的控制器无法创建对象

时间:2019-01-25 20:32:56

标签: grails

我有一个用户域对象,其中包含通常的字段(名称,密码等)

我使用以下命令生成了视图和控制器:

可以生成所有用户

慷慨的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

它进一步发展-它创建了用户,但是之后重定向失败。

1 个答案:

答案 0 :(得分:0)

您的User类似乎未被识别为域类。我可以说,因为我们添加到域类中的Map构造函数将忽略Map中类中没有相应属性的条目。您看到的错误是默认Groovy Map构造函数产生的,这就是为什么我认为您的User类未被识别为域类的原因。

请确认您的User域类已在grails-app/domain/gi/dam/desk/core/User.groovy中定义,并且如果问题仍然存在,请在从命令行./gradlew bootRun运行应用程序时验证问题是否出现。这将排除您可能会执行的与未正确配置IDE有关的许多事情。