Grails:保存时的NullPointerException()

时间:2014-03-11 04:28:06

标签: grails

我是Grails的新手,我尝试通过调用save()中的*service.groovy来保存域对象,如下所示

render " ${user.username}"
render " ${user.email}"
render " ${user.password}"
def savedUser = user.save(flush: true)
if(savedUser!=null) {
    return savedUser
} else {
    return user
}

渲染显示所有元素都具有从控制器传递的值。 但是在save()中抛出了NullPointerexception。  得到的实际错误是

错误errors.GrailsExceptionResolver - 处理请求时发生NullPointerException:[POST]

可能发生了验证错误,但我使用命令类检查了控制器中的所有验证错误。

如何在这里避免异常?

1 个答案:

答案 0 :(得分:1)

这是非常非标准的代码。而不是检查空返回值,检查是否存在验证错误更常见(并且合理/有用)。 E.g。

user.save(flush: true)
if (user.hasErrors()) {
   // do something with the invalid "user" instance
}
else {
   // do something with the valid "user" instance
}

对于您的场景,您可以忽略返回值并仅使用原始实例:

user.save(flush: true)
return user

如果您正在使用标准模板(或类似的东西),那么这应该可以正常工作,因为那里有逻辑可以检查是否存在附加错误并显示它们。