当在表单中引用另一个域对象时,Grails形成数据绑定

kno*_*orv 1 grails

如何获取Grails数据绑定以正确绑定引用的对象(例如下面示例中的Country)?

鉴于以下两个Grails域类..

class User {
  String username
  Country country
}

class Country {
  String name
}
Run Code Online (Sandbox Code Playgroud)

..和以下HTML表单..

<g:form>

<g:textField name="user.username" value="${user.username}" />

<g:select name="user.country" from="${Country.list()}" optionKey="id" />

</g:form>

..以及相应操作中的以下代码..

User user = new User(params["user"])
Run Code Online (Sandbox Code Playgroud)

..我希望user.username和user.country可以绑定.但是,似乎username.username获取绑定,而user.country不是.绑定引用对象的正确语法是什么(本例中为user.country)?

kno*_*orv 5

如果......,"country"属性的绑定开始工作

<g:select name="user.country" from="${Country.list()}" optionKey="id" />
Run Code Online (Sandbox Code Playgroud)

..改为..

<g:select name="user.country.id" from="${Country.list()}" optionKey="id" />
Run Code Online (Sandbox Code Playgroud)