2010-05-05 62 views
0

可以通过在相应的域类的验证块中指定GSP文件中的视图元素的顺序来指定视图元素的顺序。如果继承,则始终首先显示父类的参数。例如:Grails:继承域对象中视图元素的顺序

class A { 

string a 
String b 

static constraints = { 
    b() 
    a() 
} 
} 

class B extends A{ 
String c 
String d 
static constraints = { 
    d() 
    c() 
    b() //parameter from the parent 
    a() //parameter from the parent 
} 
} 

顺序是b,a,d,c。我怎样才能让它d,c,b,一个没有篡改gsp。

感谢..

回答

0

在A级的限制,定义你希望它们显示的顺序限制:

static constraints = { 
    d() 
    c() 
    b() 
    a() 
} 

即使没有约束,留下一个入口空()来创建订单。但这只适用于脚手架。

+0

你确定我可以在父项中指定子元素..我尝试时发现缺少方法异常!它编译得很好,但运行时错误。 嵌套的异常是org.codehaus.groovy.runtime.InvokerInvocationException:groovy.lang.MissingMethodException:没有方法的签名:没有方法的签名:b()适用于参数类型:(java.util.Collections $ EmptyMap)values :[[:]] – bsr 2010-05-06 02:50:44

+0

你是对的,我误解了你的例子。 另一种选择是尝试域对象继承(使用静态映射tablePerHierarchy false)。然后在子类中设置顺序。 – 2010-05-06 11:10:17

+0

对我来说,测试它并不容易,因为它会改变我的表结构。即使这样,我怀疑它会允许我按照我想要的方式排序,因为我对tablePerHierarchy的唯一区别是它为扩展类创建了不同的表比使用父表。我会尝试如果没有人回应我在此期间..谢谢你... – bsr 2010-05-07 14:33:31