如何在模型中获得参数?

时间:2013-02-20 14:16:01

标签: grails model

如何在模型中获取params(在Grails中)? <{1}}在模型中不存在。

3 个答案:

答案 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)
   }
}