Grails Domain Model 的数据绑定中需要注意的一个小问题
程序员文章站
2022-05-23 15:53:36
...
标题不知道写什么好,看正文吧。
在 Grails 中,你可以将表单提交的参数与 Domain Model 如是的进行数据绑定
def user = new User(params)
如果 User 中有一个 many 的属性,例如:
static hasMany = [tags: Tag]
此时,如果表单中有关于 Tag 的多个 Checkbox 或者多选的 Select,等等。例如:
<input type="checkbox" name="tags" value="${id}" />
......
这时 params 里将含有一个 key 为 tags 的值,这个值的类型为 String 数组。Grails 会将这个数组中的值作为 Tag 的 id,对 User 进行数据绑定。你也可以自己这样做,例如:
new User(name: 'abc', tags: ['1', '2'] as String[]).save()
需要注意的是 tags 的类型必须是数组,而不能是 Collection。