[英]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.