gpt4 book ai didi

validation - Grails:尽管有错误,对象仍被保存

转载 作者:行者123 更新时间:2023-12-02 14:52:05 24 4
gpt4 key购买 nike

尝试验证和保存域对象时遇到问题。

首先,我要进行验证,当验证错误时,我会将错误放入我要保存的对象中,如下所示:

myDomain.errors.reject("An Error")
myDomain.discard()

然后,当我尝试保存该对象时,我可以看到错误列表有一个错误,但是 'validate()'返回 'true',而且,函数完成后,该对象也将自动保存。
我必须说,所有调用的函数都在同一类中,该类是 Controller 。

我需要知道如何对我的保存函数(在 Controller 类中)进行编码,该函数仅显示错误而不保存对象,并且在验证良好时保存对象。

谢谢!

最佳答案

myDomain.validate()将覆盖myDomain.errors清除reject()。您可以执行以下操作:

  // bind etc.
...

// do grails validation
if (!myDomain.validate()) {
myDomain.discard()
}

// do custom validation
if (custom validation has errors) {
myDomain.errors.reject ()
myDomain.discard()
}

如果可以将自定义验证移到myDomain上的 validator中,则不需要自定义验证。

您不需要显式调用save()。

关于validation - Grails:尽管有错误,对象仍被保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com