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

时间:2009-09-15 15:23:11

标签: grails

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

给出以下两个Grails域类..

class User {
  String username
  Country country
}

class Country {
  String name
}

..以及以下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"])

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

2 个答案:

答案 0 :(得分:5)

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

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

..改为..

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

答案 1 :(得分:0)

您还应该查看命令对象。他们可以一次验证并绑定所有参数。