【发布时间】:2011-08-07 07:35:02
【问题描述】:
我有以下几行代码:
def edit = {
if (session.user.id != params.id){
flash.message = "You can only edit yourself."
redirect(action:list)
return
}
def user = User.get(params.id)
if (!user){
flash.message = "Login first before you edit anyone."
redirect(action:list)
}
else{
return [user:user]
}
}
我对 groovy 和 grails 还很陌生,所以请放轻松。
无论如何,上述代码仅在用户登录该站点时才有效。
当用户在未登录的情况下尝试编辑某些内容时,User.get(params.id) 会引发异常。这反过来又向我展示了以下内容:
java.lang.NullPointerException: Cannot get property 'id' on null object
at com.hyun.UserController$_closure4.doCall(UserController.groovy:25)
at com.hyun.UserController$_closure4.doCall(UserController.groovy)
at java.lang.Thread.run(Thread.java:662)
问题是我该如何正确处理这个问题?我相信答案就在这些地方:
if (!user){
flash.message = "Login first before you edit anyone."
redirect(action:list)
}
但我真的不知道如何解决这个问题。请帮我! Flash.message 未按预期工作。
【问题讨论】:
标签: grails groovy nullpointerexception