我是新来的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。实际得到的错误是
ERROR错误。GrailsExceptionResolver-处理请求:[POST]时发生NullPointerException
可能发生验证错误,但是我使用命令类检查了控制器中的所有验证错误。
在这里如何避免例外?
那是相当非标准的代码。而不是检查空返回值,而是更常见(并且明智/有用)来检查是否存在验证错误。例如
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
如果您使用的是标准模板(或类似模板),那么这应该可以正常工作,因为那里有逻辑来检查是否存在附加错误并显示它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句