2012-12-19 34 views
1

有Grails的以下commandobjects:扩展Grails的命令对象的约束验证

class commandA implements commandObjectType { 
    String a 

    static constraints = { 
     a blank: false 
    } 
} 

class commandB extends commandA { 
    String b 
} 

如何将一个b上实现在commandB对象自定义字段验证?据我所知,无法覆盖或以其他方式更改关闭。

这是否可以在任何情况下完成?我试过在闭包中“移位”,没有成功......是否可以用任何方式指定与字段一致的验证器?

回答

0

像往常一样在commandB中定义“约束”块,使用“b”字段的验证规则。验证应该适用于“a”和“b”字段。

+0

不,这是不可能的。另外,如果你在一分钟内想到它 - 你不必关闭同一个名字。它会抛出'MissingMethodException' .. – Hoof

+0

@你可以在父类和子类中拥有同名的'static'属性,当静态时它没有“覆盖”另一个的概念。 –

+0

@伊恩,好的,我不知道。但是,它并没有改变这个事实,它**不起作用**。 – Hoof

1

我不知道,如果共享约束上适用于命令对象,但你可以尝试这样的:

class commandB extends commandA { 
    String b 

    static constraints = { 
     importFrom commandA 
    } 
} 

见Grails文档约constraints usage

+0

它可能适用于没有涉及继承的情况。 – Hoof