如何在模型中获取params(在Grails中)? <{1}}在模型中不存在。
答案 0 :(得分:4)
如果“模型”是指域模型类,它们没有参数,它们只是POJO。据我所知,参数仅适用于控制器。
答案 1 :(得分:0)
据我了解,您有一种特殊的方法可以从请求中填充域名。在这种情况下,您可以将所有参数(它是一个Map)传递给这样的方法,例如:
def MyDomain {
static MyDomain buildFromParams(def params) {
return new MyDomain(
field1: params.field_1, //assuming that your params have different naming scheme so you can't use standard way suggested by Raphael
field2: params.field_2
)
}
}
class MyController {
def myAction() {
MyDomain foo = MyDomain.buildFromParams(params)
}
}
答案 2 :(得分:0)
如果您的参数名称是属性格式并且与域属性匹配,则可以执行以下操作:
假设
params = [name:"some name", age: "194", civilState: "MARRIED"]
和
class Person{
String name
Integer age
CivilStatus civilState //some enum
}
您可以在控制器中利用groovy的属性绑定构造函数:
class Controller {
def saveAction = {
new Person(params)
}
}