0

如何在模型中获取参数(在 Grails 中)?params.模型中不存在。

4

3 回答 3

4

如果“模型”是指域模型类,它们没有参数,它们只是 POJO。据我所知,参数仅适用于控制器。

于 2013-02-20T14:18:30.313 回答
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)
   }
}
于 2013-02-20T14:57:29.827 回答
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)
  }

}
于 2013-02-20T14:42:16.833 回答