代码之家  ›  专栏  ›  技术社区  ›  Simon

Grails是否有一种从URL查询字符串复制域属性的简洁方法?

  •  2
  • Simon  · 技术社区  · 15 年前

    我知道Grails有一个用于域对象的基于映射的构造函数,您可以将URL的参数传递给它,它将使用内省将适当的字段设置应用于对象,就像这样……

    myDomainInstance = new MyObject(params)
    

    我想知道是否有一种等价的方法,可以获取参数并将它们应用到现有的对象,并以映射构造函数必须工作的方式更新值,比如……

    myDomainInstance = params
    

    myDomainInstance = fromParams(params)
    

    我只是一厢情愿还是存在这样的东西?我可以自己编写代码,但如果它已经存在,我宁愿不编写。

    谢谢

    2 回复  |  直到 15 年前
        1
  •  7
  •   Gareth Davis    15 年前

    改编自 grails user guide :

    obj = MyObject.get(1)
    obj.properties = params
    

    有关详细信息,请参阅“控制器”部分下的“参数”文档。

        2
  •  2
  •   Julien Gagnet    15 年前

    它实际上取决于您尝试做什么,但等效方法使用数据绑定。

    def sc = new SaveCommand()
    bindData(sc, params)
    

    这使您可以使用自定义绑定。如果您的日期格式不是默认格式,您可以通过这样的bean重新定义它:

    public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {
      public void registerCustomEditors(PropertyEditorRegistry registry) {
          registry.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
      }
    }
    
    推荐文章