【问题标题】:Grail command objects instance validation?圣杯命令对象实例验证?
【发布时间】:2013-02-06 11:17:08
【问题描述】:

假设我有一个包含七个字段(字符串星期一、字符串星期二、..)的命令对象,我需要验证它以检查其中是否至少存在一个。

由于使用 Grails 1.3.7,我尝试将实例验证与扩展验证插件(不是富域)一起使用,但我无法使其工作。基本上,它不能识别静态约束块内的非字段验证器。

静态约束 = { 可用性选择(验证器:{ ... }) ...

我得到:

异常消息:没有这样的属性:availabilitySelected

还有其他聪明的方法吗?我只是不想为命令对象中的每个字段添加验证器。

谢谢

【问题讨论】:

    标签: validation grails command-objects


    【解决方案1】:

    您可以通过自定义验证器的二/三参数形式访问正在验证的对象。

    myField(validator: { val, obj, errors -> if( obj.blah.empty && obj.blah.empty ) { errors.reject( ... ) } )
    

    http://grails.org/doc/1.3.7/ref/Constraints/validator.html

    【讨论】:

    • 谢谢,我将验证移至其中一个字段(“星期一”),我只是认为有更好的方法可以做到这一点。例如,在我的测试中,我必须检查 'monday' FieldError 这实际上不是描述性的,因为当没有选择任何内容时,问题在于命令对象的整个实例而不是 'monday' 字段。
    • 不,只需传入错误对象并执行errors.reject而不是errors.rejectvalue - static.springsource.org/spring/docs/3.0.x/javadoc-api/org/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2011-02-23
    相关资源
    最近更新 更多