0

所以我的问题是,在我可以在页面上呈现它们之前,我的验证错误已从我的域对象中删除。我以为我过去已经修复了这个错误,但它又悄悄地出现在我身上。

这是我的原始实现。tripService.stepData(trip)调用时正在清除错误。

编辑 - 我不应该只在页面添加到 hasMany 关系时遇到这个问题。

控制器 -

    Trip trip = tripService.savePrePaymentInfo(params)

    if (trip.hasErrors()) {
        render(view: "step4", model: tripService.stepData(trip))
    }
    else {
        redirect(action: trip.status.action, id:trip.id)
    }

服务 -

Map stepData(Trip trip)
{
    Map returnSet = [:]
    returnSet.status = Status.findAllByActionNotEqual("review")
    returnSet.trip = trip
    returnSet
}

所以我在网上做了一些阅读,有人在 2 年前的论坛帖子上说休眠中有一些东西......可能的错误......我不知道,但他们的建议奏效了。建议是将控制器包装在withTransaction

Trip.withTransaction {

//Controller code here

}

这对我来说很好。现在的问题是我认为我有一个tripService再次调用的标记库。进行该调用时,它现在正在清除我的验证错误。这真是令人沮丧。有没有人知道我可以做些什么来解决这个问题?

编辑:添加从 taglib 调用的服务方法:

String findBannerName(Long pidm, String format = 'LFMI')
{
    "abc"
    //It really doesnt matter what is here - tried just returning this string and it produced the issue        
}
4

1 回答 1

0

您确定首先填充了 trip.errors 属性吗?

另外,您在 taglib 中调用了哪个 tripService 方法?

于 2013-05-22T19:39:22.927 回答