У меня есть следующие строки кода:
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 не работает должным образом.