【发布时间】:2011-08-08 20:50:28
【问题描述】:
我是 Grails 的新手,我在会话方面遇到困难..
在控制器中,我如何检查用户是否有有效的会话?在 Java/Spring MVC 中,就是简单的 request.getSession(),那么 Grails 中的约定是什么?
如何从会话中添加/获取值?
谢谢,
【问题讨论】:
我是 Grails 的新手,我在会话方面遇到困难..
在控制器中,我如何检查用户是否有有效的会话?在 Java/Spring MVC 中,就是简单的 request.getSession(),那么 Grails 中的约定是什么?
如何从会话中添加/获取值?
谢谢,
【问题讨论】:
Grails 使用与 Java EE 相同的 servlet API,但它提供了一些额外的便利方法。在 Grails 控制器、taglib 或 GSP 中有隐式变量 request 和 session 引用当前的 HTTPServletRequest 和 HttpSession。
以下是 Grails 如何让使用这些对象更加方便的示例:
Object fooAttr = session.getAttribute("foo");
def fooAttr = session["foo"]
【讨论】:
request.getSession() 方法
您可以使用“会话”对象
【讨论】:
用户登录后,在会话中设置值(用户名)。 例如,您的域类是 User.groovy。因此,在控制器中的登录方法中:,您可以这样做:
def login()
{
def u = new User()
u.properties[
'login',
'password',
] = params
if(u.save())
session.user = u
}
之后,每当您想检查会话是否仍在进行时,只需执行
if(session.user != null)
//your code
【讨论】:
grails 中的会话对象有两个方法,即 getAttribute() 和 setAttribute(),可用于在会话中获取/设置值。
【讨论】: