繁体   English   中英

Grails命令对象初始化

[英]Grails command object initialization

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

class RegisterController {

    def register(User user) {
        render text: "User name is '$user.name'"
    }
}

user参数是域类实例。 如果我使用URL调用此控制器

http://localhost:8080/myapp/register/register

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

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

不一定是这样。 对于域类命令对象,如果不存在任何参数,则仅为POST请求创建一个新实例。

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

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

2.3.8文档中可能缺少该文本。 我将对此进行验证,并在必要时添加它。

如果您修改:

'$user.name'

成为:

'${user?.name}'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM