Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails 如何伪造验证错误?_Grails_Spring Webflow_Grails Domain Class - Fatal编程技术网

Grails 如何伪造验证错误?

Grails 如何伪造验证错误?,grails,spring-webflow,grails-domain-class,Grails,Spring Webflow,Grails Domain Class,我正在使用插件。以下是我正在处理的域对象: class Foo implements Serializable { String fooProp1, fooProp2 static constraints = { fooProp2 nullable: false } } class Bar implements Serializable { Foo fooObject static constraints = {

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

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属性,因此它通过了验证。有什么想法吗?

您可以通过修改以下代码在Web流中实现这一点:

if(fooObject.fooProp1 == null) {
    fooObject.errors.rejectValue('fooProp1', 'nullable')
}
该方法的第二个参数,
'nullable'
,可能与您的情况不同。您只需将其设置为消息代码(来自message.properties)即可显示所需的错误消息


查看更多使用
reject()
rejectValue()

的方法,我有点困惑-如果是这种情况,属性不应该是
可空的:false
?您能否澄清为什么不能将约束添加到域中?我想这是对我来说最明显的解决方案。嗯,在不指定fooProp1的情况下,Foo对象可以存在于数据库中。但是,在webflow过程中,此属性不需要为null,因为它在webflow过程结束时使用。谢谢,这正是我想要的。