Grails 即使域未能保存呈现视图页面,代码也不会';你不能装吗?
我不明白为什么editDonationView页面没有呈现,因为don.save()失败,因为在域中,如果customDonationMin大于customDonationMax,则会发生验证错误。我已将自定义验证器粘贴到下面,供您参考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
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
}