修复Grails中空白空字段的grails验证错误

时间:2014-10-30 06:37:26

标签: grails groovy

有一个域类,其中一个字段具有约束

AnnualIncome(blank:true, nullable:true,range: 100000..100000000).

如果用户不想填写此字段,则此字段的默认值为0,然后会出现grails默认异常,表示AnnualIncome的值不在100000以下100000000。

但是当用户填充AnnualIncome字段然后应用范围约束时,会使用此约束。但是如何管理此状态,以便在用户希望填充此详细信息时检查约束,如果他没有想填补它,不应该提出任何例外吗?

2 个答案:

答案 0 :(得分:0)

您可以在范围字段中使用custom validator作为用例:

在验证器闭包中,您可以有条件地应用约束。

在验证器关闭中,您可以检查

if(AnnualIncome ==0){
    //do somthing
 }else{
   // apply constraint here.
}

答案 1 :(得分:0)

在您允许null时,将值设置为null而不是0。这使得更容易区分值集或输入的实际0(在未来的某个时候可能会发生变化,例如因为您允许NPO注册)。

否则你应该删除范围检查。如果它与存储数据无关,则应在域模型级别处理(GORM对象不是域模型)。