Grails 如何在模型中获取参数?

Grails 如何在模型中获取参数?,grails,model,Grails,Model,如何在模型中获取参数(在Grails中)参数。在模型中不存在。如果“模型”是指域模型类,那么它们没有参数,只是POJO。据我所知,参数仅适用于控制器。如果“模型”指的是域模型类,那么它们没有参数,只是POJO。据我所知,参数仅适用于控制器。据我所知,您有一种特殊的方法用于从请求填充域。在这种情况下,您可以将所有参数(它是一个映射)传递给这样的方法,如: def MyDomain { static MyDomain buildFromParams(def params) { ret

如何在模型中获取参数(在Grails中)<代码>参数。在模型中不存在。

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

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

据我所知,您有一种特殊的方法用于从请求填充域。在这种情况下,您可以将所有参数(它是一个映射)传递给这样的方法,如:

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

}

据我所知,您有一个特殊的方法来填写域的要求。在这种情况下,您可以将所有参数(它是一个映射)传递给这样的方法,如:

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

}

如果参数名称的格式正确且与域属性匹配,则可以执行以下操作:

假定

params = [name:"some name", age: "194", civilState: "MARRIED"]

您可以在控制器中像这样利用groovy的属性绑定构造函数:

class Controller {
   def saveAction = {
       new Person(params)
   }
}

如果参数名称的格式正确且与域属性匹配,则可以执行以下操作:

假定

params = [name:"some name", age: "194", civilState: "MARRIED"]

您可以在控制器中像这样利用groovy的属性绑定构造函数:

class Controller {
   def saveAction = {
       new Person(params)
   }
}

有几种方法可以在域对象内获取http参数,但都是黑客攻击。你打算如何使用它,为什么标准方法不适合你?我只是想避免将所有参数或我需要的每个参数手动传递给模型/域模型。问题是:当您构建模型数据时,您经常需要参数,并且在控制器中处理它们有时很烦人(即使它对MVC结构是正确的)。您可以将其作为对象传递,而不需要传递每个参数。为什么不呢?有几种方法可以在域对象中获取http参数,但都是黑客攻击。你打算如何使用它,为什么标准方法不适合你?我只是想避免将所有参数或我需要的每个参数手动传递给模型/域模型。问题是:当您构建模型数据时,您经常需要参数,并且在控制器中处理它们有时很烦人(即使它对MVC结构是正确的)。您可以将其作为对象传递,而不需要传递每个参数。为什么不呢?