如何正确使用Grails命令对象

时间:2014-11-15 15:05:27

标签: grails

我一直在努力阅读并尝试理解命令对象,但我还没有理解如何在我的特定场景中使用它们。

这就是我所拥有的:

class Beneficary {
  String name
  //more attributes

  static hasMany = [dependents = Dependent]
}

class Dependent { 
  DegreeKinship degreeKinship //enum
  //several atrributes

  static belongsTo = [beneficiary: Beneficiary]
}

我已经阅读了几篇文章,包括SO答案,如果有人愿意,应该使用命令对象,但我不知道如何。

我写了这个:

class DependentCommand {
  List<Dependent> dependents = ListUtils.lazyList([], {new Dependent()} as Factory)
}

但我不确定如何在我的Beneficiary课程中使用它。

另外,我希望在一个视图(beneficiary/create

下完成所有操作

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

我认为你不应该在Beneficary类中使用它们,在BeneficaryController中使用它们。

命令对象为您提供了一种封装,转换和验证请求参数的标准化方法。因此,它们的主要用途是在一个控制器中,而不是一个可以在本机上完成大部分命令对象功能的域类。

如果您想接受包含dependents=1&dependents=2行参数的请求,您可以像这样重写命令:

class DependentCommand {
    List<Dependent> dependents
}
相关问题