【发布时间】:2010-11-29 21:28:29
【问题描述】:
我是 Grails 的新手,我正在努力解决许多简单的问题。
例如,当我从页面顶部布局上显示的模板视图登录/注销时,我还没有找到返回上次访问页面的正确方法。
我最后一次解决这个问题的尝试是将 ${params.controller} 和 ${params.action} 保存在发送到注销操作的参数中,然后重定向。嗯......即使这失败了。 这是gsp sn-p:
<g:link controller="user" action="logout" params="[currentController: ${params.controller}, currentAction: ${params.action}]">Logout</g:link>
最后一行代码抛出以下异常:
ERROR errors.GrailsExceptionResolver - Error evaluating expression [[currentController: ${params.controller}, currentAction: ${params.action}]]
所以我的问题是:
1 - 如何在登录/注销操作后重新加载上次访问的页面?
2 - 为什么上面的代码出现异常?
谢谢
编辑: 关于问题 #2,似乎以下代码正在运行:
<g:link controller="user" action="logout" params="[currentController: params.controller, currentAction: params.action]">Logout</g:link>
但我真的不明白原因......
编辑2: 我还找到了重定向到上次访问页面的解决方案:
redirect(url: request.header('referer'))
但不幸的是,在登录后执行此操作时,我的页面中呈现的内容是重复的。任何想法或任何其他安全的解决方案?
【问题讨论】: