簡體   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