2012-04-26 33 views
0

如果我有域类,如:Grails命令绑定 - 带关系的域类 - 有可能吗?

class A { 
short aCode 
//... 
static hasMany = [bs : B] 
static mapping = { 
    id column: 'a_code' name: 'aCode' 
} 
} 

class B { 
    long bCode 
    static belongsTo = [a: A] 
    id column: 'b_code' name: 'bCode' 
} 

,并尝试使用了B级的命令:

class SomeCommand { 
    List<B> bs = ListUtils.lazyList([], FactoryUtils.instantiateFactory(B)) 
} 

我对ACODE输入应该是:

<input type='text' name='bs[0].a.aCode' /> 

为什么这个没有被grails控制器绑定?绑定后,command.bs[0].a保留为空。

我使用Grails 2.0.3

回答

0

实际上与命令对象和列表的数据绑定不起作用。这里有一个JIRA

0

我已经做了的关系没有问题结合。

我不知道这是如何工作的。

class SomeCommand { 
    List<B> bs = ListUtils.lazyList([], FactoryUtils.instantiateFactory(B)) 
} 

<input type='text' name='bs[0].a.aCode' /> 

对于,A(父)具有许多B(儿童)和B属于A.

例如。 A有10Bs(bs [0]〜bs [9]) 我总是可以使用类似的东西来绑定输入。

<input type="text" name="a.aCode" /> 

<input type="text" name="bs[0].bCode" /> 
<input type="text" name="bs[1].bCode" /> 
.... 
.... 

不确定如何将数据从子项(B)绑定到父项(A)。

+0

和你的例子一样,我手动绑定了B中的A。来自Grails邮件列表的人指出我为这个JIRA:http://jira.grails.org/browse/GRAILS-5582 – 2012-05-07 15:55:27