Grails 内部结构:自动映射和域对象创建

问题描述 投票:0回答:1

我正在尝试制作一个标记库来表示一个对象(以在用户界面上读取和显示)。创建对象时(在控制器中保存方法),我看到域类和关联是通过参数自动分配创建的

def Book = new Book(params) 

它还映射复杂类型(例如:joda time)。我想知道促进这种映射所需的命名约定。出于好奇,有人还可以指出在 grails 源代码中我可以看到 grails 如何处理此映射吗?我仍在学习 Spring,这可能是一个很好的练习。 谢谢, 巴布.

grails
1个回答
2
投票

据我所知,命名约定相当简单。如果有一个字段

params.foo
并且您要绑定的对象有一个字段 foo,它将绑定该值,假设类型转换正常工作。如果有一个
params.bar.id
设置了 Long 值,并且您的对象具有
Bar
类型的复杂属性,它将查找此实例并注入它。

如果您需要对绑定过程进行更多控制,您可能需要使用bindData

如果您对绑定过程的细节感兴趣,请查看 Java 的 PropertyEditor,因为这是在后台使用的。我不久前写了一篇关于如何创建和注册 PropertyEditor 的博客文章,也许它可以帮助您开始使用这些东西。

© www.soinside.com 2019 - 2024. All rights reserved.