Grails命令对象初始化

Dón*_*nal 0 data-binding grails

在我的Grails 2.3.8应用程序中,我已经定义了以下控制器操作

class RegisterController {

    def register(User user) {
        render text: "User name is '$user.name'"
    }
}
Run Code Online (Sandbox Code Playgroud)

user参数是一个域类的实例.如果我使用URL调用此控制器

http://localhost:8080/myapp/register/register
Run Code Online (Sandbox Code Playgroud)

我得到了NullPointerException.但是,我对数据绑定的理解是,如果在没有任何参数的情况下调用此操作,则应为该参数指定一个new User()

Jef*_*own 5

但是我对数据绑定的理解是,如果在没有任何参数的情况下调用此操作,则应为该参数分配一个新的User()

情况不一定如此.对于域类命令对象,如果不存在任何参数,则仅为POST请求创建新实例.

来自http://grails.org/doc/2.4.0.RC1/guide/theWebLayer.html#commandObjects ...

如果命令对象的类型是域类并且没有id请求参数,那么null将被传递到控制器操作,除非HTTP请求方法是"POST",在这种情况下,将通过调用创建域类的新实例域类构造函数.

2.3.8文档中可能缺少该文本.我将验证并在必要时添加它.