Grails 即使域未能保存呈现视图页面,代码也不会';你不能装吗?

Grails 即使域未能保存呈现视图页面,代码也不会';你不能装吗?,grails,grails-2.0,Grails,Grails 2.0,我不明白为什么editDonationView页面没有呈现,因为don.save()失败,因为在域中,如果customDonationMin大于customDonationMax,则会发生验证错误。我已将自定义验证器粘贴到下面,供您参考 customDonationMax nullable: true, min: BigDecimal.ZERO, validator: { BigDecimal max, EventDonation obj -> if (max != null &a

我不明白为什么editDonationView页面没有呈现,因为don.save()失败,因为在域中,如果customDonationMin大于customDonationMax,则会发生验证错误。我已将自定义验证器粘贴到下面,供您参考

customDonationMax nullable: true, min: BigDecimal.ZERO, validator: { BigDecimal max, EventDonation obj ->
    if (max != null && obj.customDonationMin > max){
        return 'donation.min.max.error'
    }
}
下面是UpdateNation方法。在参数中,我特意将customDonationMin设置为大于customDonationMax,以使don.save()失败

def updateNation(长id){
def ev=CompositeEvent.get(id)
myAclService.hasWritePermission(ev.id,CompositeEvent)
//确保我们正在编辑的问题存在
列表捐赠\u comp\u event=EventDonationCompositeeEvent.createCriteria().List(){
均衡器(“事件”,ev);
}
def don=捐赠\u补偿\u事件[0]。捐赠
列表白名单=['title','body','customDonationMin','customDonationMax']
bindData(don,params,['include':白名单])
//现在我们保存捐款
如果(!don.save()){
don.errors.each{
//在这里,此渲染不起作用,而下面的代码执行重定向(控制器:“compositeEvent”,操作:“home”,id:id)
渲染(视图:“编辑捐赠”,模型:[id:id,捐赠:don])
返回
}
}
flash.message=“捐赠设置成功!!”
重定向(控制器:“复合事件”,操作:“主”,id:id)
返回
}

我注意到,当我按如下方式修改上述代码时,问题就解决了

 if (!don.save()) {

                //here this render doesnt work instead the the below code executes redirect(controller: "compositeEvent", action: "home", id: id) 

                render(view: "editdonation", model: [id:id, donation:don])
                return

        }

与您的问题无关,但是在
渲染
重定向
之后,您不应该需要
返回
关键字。
 if (!don.save()) {

                //here this render doesnt work instead the the below code executes redirect(controller: "compositeEvent", action: "home", id: id) 

                render(view: "editdonation", model: [id:id, donation:don])
                return

        }