我正在为这样的人保存联系人(电子邮件,手机,ICQ,AIM等):
class Person {
static hasMany = {
contacts: Contact
}
}
class Contact {
String code
ContactType type
}
class ContactType {
String name
}
在我看来,我已经编写了一些用于显示每个联系人的模板,其中包含联系人类型的选择框和代码的文本字段,加上一些用于添加和删除的JavaScript。
我的问题是:是否有一种简单而优雅的方式来更新类似于personInstance.properties = params
的数据,或者我是否必须读出所有字段,删除已删除,更新已更改并添加新字段?
答案 0 :(得分:0)
前段时间我正在研究这个问题,但从来没有重构过以老式方式处理参数的代码。
根据http://www.grails.org/Controllers+-+Data+Binding你可以做这样的事情
def person = new Person(params['person'])
def contact = new Contact(params['contact'])
def conctactType = new ContactType(params['contactType'])
只要请求参数正确命名空间
person.contact.code
person.contact.type.name
您仍然需要了解如何处理一对多。也许知道的人可以参与进来。
编辑:
介绍了这个描述如何处理一对多的文档。它没有出现在主要网站上:
http://svn.codehaus.org/grails/tags/GRAILS_DOCS_1_1/src/guide/6.1.6%20Data%20Binding.gdoc