为什么在Grails CRUD中默认/建议练习,所以在Create上使用prams进行初始化

时间:2015-04-30 03:15:30

标签: grails

在Grails中创建一个新控制器,默认情况下会生成如下所示的create方法:

def create() {
    respond new Book(params), model: [......]
}

我想知道它背后的原因是什么,为什么不是简单的新书()或什么都没有?

此外,对命令对象使用相同的方法会产生错误,例如:

No such property: action for class: com.BookCommand

我知道params包含action属性而Command对象没有,但域Domain类也没有。

感谢您花时间解释。

1 个答案:

答案 0 :(得分:1)

控制器中使用的数据绑定器对于在课堂上不存在的属性略微放松,主要是因为"额外的"操作和控制器名称等参数。仅设置了持久性和可绑定属性(并且始终忽略idversionclassmetaClass

Book创建params而不仅仅是新的默认实例的原因是允许设置一些初始默认值,例如

/book/create?foo=42&bar=purple

将设置foo和`bar'的初始值。 GSP表格中的属性。