Grails:继承的域对象中视图元素的顺序

Grails:继承的域对象中视图元素的顺序,grails,Grails,通过在相应域类的验证块中指定,可以指定GSP文件中视图元素的顺序。如果继承了lass,则始终首先显示父类的参数。例如 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() //para

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

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,a不篡改普惠制


谢谢..

在A类的约束中,按您希望的显示顺序定义约束:

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

即使没有约束,也要将条目保留为空()以创建订单。但这只适用于脚手架。

您确定我可以在父元素中指定子元素吗。。我在尝试时遇到了缺少的方法异常!!它编译得很好,但运行时给出了错误。嵌套的异常是org.codehaus.groovy.runtime.invokerinJournationException:groovy.lang.MissingMethodException:No signature of method:No signature of method:b()适用于参数类型:(java.util.Collections$EmptyMap)值:[[:]]您是正确的,我误读了您的示例。另一个选项是尝试域对象继承(静态映射tablePerHierarchy为false)。然后在子类中设置顺序。因为它改变了我的表结构,所以我不容易测试它。。即使这样,我也怀疑它是否能让我按照我想要的方式排序,因为我所知道的关于tablePerHierarchy的唯一区别是,它为扩展类创建的表与使用父表不同。如果在此期间没有人回应我,我会尽力的。。谢谢你…我尝试过子类的想法,但也没有成功。我被难住了,只能看到创建普惠制并在那里修改它(这并不是很糟糕,我以前也做过)。这是真的。没那么糟糕。。缺点是,我不能使用动态支架(至少在域类频繁更改的初始阶段)。当我必须重新创建视图文件(按域或脚手架模板更改)时,我必须手动再次进行这些更改。。好吧,如果没有办法,那么。。。