如何伪造验证错误?

时间:2010-10-26 12:50:58

标签: grails spring-webflow grails-domain-class

我正在使用Grails Webflow插件。以下是我正在使用的域对象:

class Foo implements Serializable {
    String fooProp1,
           fooProp2

    static constraints = {
        fooProp2 nullable: false
    }
}

class Bar implements Serializable {
    Foo fooObject

    static constraints = {
        fooObject nullable: false
    }
}

在Webflow中,我需要确保fooObject.fooProp1不为null。如果是,我想抛出一个错误并强制用户为它提供一个值。我尝试使用validate()来执行此操作(在Bar和Foo对象上),但由于fooProp1具有nullable:true属性,因此它会通过验证。有什么想法吗?

1 个答案:

答案 0 :(得分:10)

您可以通过调整以下代码在Web Flow中执行此操作:

if(fooObject.fooProp1 == null) {
    fooObject.errors.rejectValue('fooProp1', 'nullable')
}

该方法的第二个参数'nullable'可能因您的情况而异。您只需将其设置为消息代码(来自message.properties)以显示所需的错误消息。

查看here了解更多使用reject()rejectValue()的方式。